字符数组和字符串学习总结
发布日期:2021-05-07 15:25:33 浏览次数:29 分类:精选文章

本文共 2056 字,大约阅读时间需要 6 分钟。

目录


字符数组和字符串小知识点总结

//1、字符串是以0 或者 '\0'结尾的字符数组。(数字0和'\0'是等价的)。

void test1()
{
    //字符数组初始化时,结尾没有数字0 或者 '\0',所以会一直打印,直到遇到数字0 或者 '\0'。
    char str1[] = {'h', 'e','l', 'l','o'};
    printf("%s\n", str1);
}

执行结果:

//2、指定长度的字符数组,未初始化的部分默认填0

void test2()
{
    char str2[100] = {'h', 'e','l', 'l','o'};
    printf("%s\n", str2);
}

执行结果:

 

//3、如果以字符串初始化字符数组,编译器默认会在字符串末尾添加'\0'

void test3()
{
     char str3[] = "hello"; //编译器默认会在字符串末尾加'\0'
     printf("%s\n",str3);

     printf("strlen is %d\n", strlen(str3));    // strlen 遇到'\0'  停止,计算结果不包含'\0'

     printf("sizeof is %d\n", sizeof(str3));  // sizeof 遇到'\0'不停止,计算结果  包含'\0'
}

执行结果:

//4、strlen 遇到'\0'  停止,计算结果不包含'\0' ;  

//      sizeof 遇到'\0'不停止,计算结果  包含'\0';
void test4()
{
     char str4[100] = "hello"; //编译器默认会在字符串末尾加'\0'
     printf("%s\n",str4);

     printf("strlen is %d\n", strlen(str4)); // strlen 遇到'\0'  停止,计算结果不包含'\0'

     printf("sizeof is %d\n", sizeof(str4)); // sizeof 遇到'\0'不停止,计算结果  包含'\0'
}

执行结果:

//5、strlen 遇到'\0'  停止,计算结果不包含'\0' ;  

//   sizeof 遇到'\0'不停止,计算结果  包含'\0';
void test5()
{
     char str5[] = "hello\0world"; //编译器默认会在字符串末尾加'\0'
     printf("%s\n",str5);

     printf("strlen is %d\n", strlen(str5));  // strlen 遇到字符串中间的'\0'停止,计算结果不包含'\0',所以长度为5(即hello)

     printf("sizeof is %d\n", sizeof(str5)); // sizeof 遇到'\0'不停止,计算结果  包含'\0',所以长度为12(hello + 中间的'\0' + world + 字符串结尾默认的'\0')
}

执行结果:

//6、strlen 遇到'\0'  停止,计算结果不包含'\0' ;  

//   sizeof 遇到'\0'不停止,计算结果  包含'\0';
void test6()
{
     char str6[] = "hello\012world";  //' \'为转义字符,'0'为八进制标识,'12'为八进制数值, .'\012' 对应的十进制数10 (又对应的是换行符
     printf("%s\n",str6);

     printf("strlen is %d\n", strlen(str6));  // strlen 结果为11(hello + '\012' + world )

     printf("sizeof is %d\n", sizeof(str6)); // sizeof 结果为12 (hello + '\012' + world + 字符串结尾的'\0')
}

执行结果

C 语言常用字符串数组处理函数

1、计算字符串数组长度

strlen(字符串数组名)

说明:
1)遇到'\0' 或者数字0停止;
2)计算结果不含字符串结束标志'\0';

2、字符串拷贝

strcpy(目的字符串数组名, 源字符串数组名)

说明:
1)拷贝时会连字符串结束标识'\0'一起拷贝;

3、 字符串拼接

strcat(目的字符串数组名, 源字符串数组名)

4、字符串比较

strcmp(字符串数组名1, 字符串数组名2)
说明:
1)按照ASCII码顺序比较两个字符数组中的字符串,并由函数返回值返回比较结果;
2)返回值如下:
• 串1=串2,返回0
• 串1>串2,返回正数
• 串1<串2,返回负数
3)当两个字符串进行比较时,若出现不同字符,则以第一个不同的字符的比较结果作为整个比较结果;

5、字符串大小写转换

strupr(字符串数组名)
strlwr(字符串数组名)

6、sprintf   待补充

 

7、sscanf 待补充

 

 

 

 

 

 

 

上一篇:leetcode 14 最长公共前缀
下一篇:内存四区

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月10日 00时36分28秒