1.字符串
如果你存放的是一个字符串,那么就必须要有一个’\0’字符来表示字符串的结束
注意:
char name[10] = {‘l’,’o’,’v’,’e’,’\0’};//这个字符数组的长度是10,字符串的长度是4
char name1[3] = {‘l’,’o’,’v’,’e’,’\0’};存储不下,没有\0,就不安全
char name2[] = {‘l’,’o’,’v’,’e’,’\0’};这个字符数组的长度是5,字符串长度是4
char name3[] = {“love”};这个字符数组的长度是5,字符串的长度是4;
char name4[] = “love”;这个字符数组的长度还是5,字符串的长度是4
2.如何输出一个字符串
a.因为字符串是存放在char类型的数组里面的,所以可以用循环把字符数组里面的每一个元素用%c打印出来。
b.%s 打印字符串
其实也是将字符数组里面存放的元素一个一个的打印,知道遇到\0结束
3.如何输入一个字符串
char name[10];
printf(“请输入一个字符串\n”);
scanf(“%s”,name);//不要取地址符,name本来就是一个地址
注意:如果输入一个空格,就默认结束了
4.如何计算字符串的长度
字符串的长度是遇到’\0’之前的所有的字符的个数和。
5.字符串常用的函数
这些都是在string.h这个头文件中
a).puts();输出一个字符串 自动换行 只能输出字符串,不能使用格式符号
b).gets();接受用户输入一个字符串,遇到空格不会看成是结束
c).scanf()函数 和get()函数,都是不安全的,因为如果保存字符串的字符数组长度小于输入的字符串的长度,就保存不下,就没有地方保存’\0’。
d).strcmp();比较两个字符串(比较字符串的ASCII码),返回一个整数,如果返回的是一个正数,则说明第一个比第二个大,如果返回的是一个0,相等
e).strlen();计算字符串的长度。返回的是unsigned long类型
f).stcpy();拷贝 把第二个字符串拷贝到第一个里面去,’\0’也要拷进去,第一个保存数组的长度要保存的下第二个字符串。
g).strcat();链接字符串,把两个字符串链接成一个新的字符串存放到第一个数组里面去,第一个数组的长度要能够存放的下这个新的字符串
那么我们若不用strlen()计算字符串的长度,我们还可以自己写函数来进行计算。
char name[] = “love”;
int count = 0;
while(1)
{
if(name[count] != ‘\0')
{
count ++;
}else
{
break;
}
}
printf(“%d\n”,count);