C语言是如何处理字符串常量的
它是存储在data段内,关于存储空间后续会记录更详细的章节。字符串很多时候就相当于一个字符数组,注意:字符串数组都是以【\0】结尾
对字符串的操作
- 求字符数组的长度
int main()
{
char array[100] = "china";
printf("%s\n",array);
int count = 0;
for(int i=0; i<100; i++)
{
if(array[i] != '\0')
count++;
}
//求字符串的大小的时候,通常不把字符\0 计算在内
printf("count = %d\n",count);
return 0;
}
- 链接两个字符串
#include <stdio.h>
int main()
{
char firstName[30] = "jim ";
char lastName[30] = "Green";
char *p;
for( p = firstName; *p != '\0';p++);
for(char *q = lastName; *p = *q; p++,q++);
printf("name = %s\n",firstName);
return 0;
}
- 库函数操作
// strlen 返回字符串的长度
//strcat 将一个字符串连接到另一个字符串的尾部
//strcpy 字符串拷贝,保证足够的空间能够存放防止溢出
//strcmp 字符串比较大小 相等返回值为0 返回值大于0则str1>str2 小于0则str1<str2
#include <stdio.h>
#include <string.h>
int main()
{
char firstName[30] = "jim ";
char lastName[30] = "Green";
strcat(firstName,lastName);//lastname的第一个字节覆盖firstname的'\0'
printf("name = %s\n",firstName);
return 0;
}
strcmp比较的是对应的ascii字码表的值,因此可以在比较大小之后来进行排序。