当前位置:首页 » 编程语言 » c语言中如何定义字符串
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中如何定义字符串

发布时间: 2022-06-08 08:11:25

c语言中如何定义一个字符串呀

char b[]="张三",张三是字符串不是字符用双引号一个汉字两个字节,你给的那五个字节是放不下的,那个数组没有对的地方,想用一维数组的话char a[]={"张三,李四,王二,小明,小花"};这样做没什么实际意义

㈡ c语言如何声明字符串

C语言中没有字符串类型的变量。
他只有字符变量类型char,所以字符串用变通的方式来表示。
第一是字符数组来表示字符串。用下面的语句声明:
char a[10];
C语言中字符数组与字符串的唯一区别是字符串末尾有一个结束符'\0',而字符数组不需要。
如刚才声明的a[10]是一个含有10个元素的字符数组,它也能存放含有9个元素的字符串。
第二种方式是直接用指针。语句是:
char *a;
用指针声明的字符数组,大多数功能与字符数组表示字符串相同。但也有以下两点不同,一是储存位置不同,用字符数组表示时,字符串是存放在储存器的变量区域内;而用指针表示的字符数组是存储在储存器的常量区内;第二个区别是字符数组的字符串可以更改,而指针表示的字符串不能更改。
有关字符串的赋值方法,如何引用,请参考相关书籍。
有什么问题请留言。

㈢ c语言定义字符串

定义字符串的方法如下:

#include <stdio.h>

#include <stdlib.h>

int main()

{

//定义字符串的几种方式

//字符串和字符数组的区别:最后一位是否是空字符

char names1[] = {'j', 'a', 'c', 'k', ''};

char names2[50] = "jack";

char * names3 = "jack";

printf("数组所占空间大小:%d ", sizeof(names1));

printf("数组所占空间大小:%d ", sizeof(names2));

//动态输入

printf("请输入新名称: ");

scanf("%s", names2);

printf("%s ", names2);

return 0;

}


(3)c语言中如何定义字符串扩展阅读

字符串函数的应用

①连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.

例:concat(‘11’,'aa’)='11aa’;

②求子串。

Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。

例:(‘abdag’,2,3)=’bda’

③删除子串。

过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。

例:s:=’abcde’;delete(s,2,3);结果s:=’ae’

④插入子串。

过程Insert(s1,s2,I) 把s1插入到s2的第I个位置。

例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’

㈣ C语言如何定义一个常量字符串

定义:用双引号(“”)括起来的0个或者多个字符组成的序列
存储:每个字符串尾自动加一个
‘\0’
作为字符串结束标志
(1)在C语言中没有专门的字符串变量,如果想将一个字符串存放在变量中以便保存,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。例如“char
a[10]="love".”
(2)在程序中,字符串常量会生成一个“指向字符的常量指针”。当一个字符串常量出现于一个表达式中时,表达式所使用的值就是这些字符所存储的地址,而不是这些字符本身。因此,你可以把字符串常量赋值给一个“指向字符
的指针”,例如:char
*a
=
"123"
;
a
=
"abc";,后者指向这些字符所存储的地址。但是,你不能把字符串常量赋值给一个字符数组,因为字符串常量的直接值是一个指针,而不是这些字符本身。例如:char
a[5];a[0]
=
"a";就是错误的,报错结果:invalid
conversion
from
'const
char*'
to
'char'。
例如:char
a[10]="love",的意思就是用字符串“love”来初始化字符数组a的内存空间,而数组的首地址也就是“love”字符串的地址。

㈤ c语言怎样定义字符串

有如下几种方法:
1、char s1[]="aaa";
2、char s2[]={'b','c'};
3、char *s3="dddd";

㈥ C语言如何定义字符串,其个数和长度均为变化的

C语言
字符串
<=>
字符数组
<=>
指针[字符指针]
你可以用字符指针
char
*
类型定义字符串,这样你就可以利用malloc和realloc动态分配空间了
这个是我写的一个程序例子,你可以参考下
功能:将字符指针作为函数的参数编写一函数
void
InvStr(char
*s,
int
n),将字符串s中的前n个字符倒序排列
#include
#define
INIT_SIZE
20
#define
INCR_SIZE
10
unsigned
int
StrLen(char
*str)
///
求出字符串中含有的字符个数,不包括结束标志
{
///
*
这里我没有用库函数求长度,我不知道怎么用
unsigned
int
i;
for
(i=0;
str[i++]!='\0';);
return
(i
-
1);
}
void
InvStr(char
*s,
int
n)
//逆置字符串s的前n个字符
{
int
i;
//索引变量
char
ch;
//中间变量
if
((int)StrLen(s)
<
n
||
n
<
0)
n
=
StrLen(s);
//如果n不合适,则直接对整个字符串进行逆置
for(i
=
0;
i
<
n/2;
i++){
ch
=
s[i];
s[i]
=
s[n-1-i];
s[n-1-i]
=
ch;
}
}
void
main()
{
char
*
str
=
(char
*)
malloc
(INIT_SIZE
*
sizeof(char));
char
ch;
int
i
=
0;
//字符串当前字符数
int
len
=
INIT_SIZE;
//字符串空间大小
while
(ch
=
getchar())
{
//
循环录入字符串
if
(ch
==
'@')
{
///如果按回车键,则结束
str[i]
=
'\0';
///字符串结束标志
break;
}
if
(i
<
len-1)
{
str[i]
=
ch;
}
else
{
str
=
(char
*)
realloc
(str,
(len
+
INCR_SIZE)
*
sizeof(char));
//增加存储空间
str[i]
=
ch;
len
+=
INCR_SIZE;
//重新记录字符串空间
}
i++;
}
scanf("%d",&i);
InvStr(str,i);
printf("%s\n",str);
}