------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
需要接入string.h文件来使用一些字符串函数
c语言中用char[]数组来表示字符串,采用%s输出,结尾以\0标示,\0不是数字0,是非打印自负,其ASCII码为0
char name[40];
int size;
long int letters;
printf("Enter Name!\n");
scanf("%s",name);
size = sizeof(name);
letters = strlen(name);
printf("name:%s,size:%d,letters:%ld\n",name,size,letters);
return 0;
sizeof()以字节为单位给出数据的大小,关于括号的使用,如果想获取某一个类型的大小是必须的,所以一般都带括号就可以了
strlen()以字符为单位给出字符串的长度
scanf()标准输入函数,由于char name[]是地址,所以不需要&字符
在上的代码中,sizefo会报告name有40个内存单元,而strlen会报告name使用了前8个
字符串中结尾的\0虽然不可见,但是也计算在内
scanf输入函数具有多种用法
printf("Enter Number!\n");
int a,b;
scanf("%d%d",&a,&b);
printf("A: %d, B :%d",a,b);
printf("Enter Number!\n");
int a,b;
scanf("%d,%d",&a,&b);
printf("A: %d, B :%d\n",a,b);
第二种输入中,可以以,符号为间隔的两个数字
char text[10] = "123456789";
char text2[10] = {'1','2'};
char text3[] = {'1','2'};
char text4[] = "123456";
printf("A %s\n",text);
printf("B %s\n",text2);
printf("C %s\n",text3);
printf("D %s\n",text4);
A 123456789
B 12
C 12\330\367\277_\377
D 123456
上面的代码使用了4种不同的字符串初始化,其中的text3输入了一些不相关的数字是由于,text3使用的初始化方法缺少了\0字符导致
至于其他三种都会自动加入\0,对于和text3相似的text2缺正常输出的原因,是因为text2[10]提前声明长度
char text[3][10] = {"Mei","Shao","Nv"};
char text2[2][10] ={
{'M','e','i'},
{'S','h','a','o'}
};
printf("text:%s\n",text[2]);
printf("text2:%s\n",text2[1]);
text:Nv
text2:Shao
上面的代码展示了字符串数组,实际是采用二维数组的结构来实现的