关于字符串基础知识
这是对于字符串基础的一部分总结。
一、字符串声明及初始化:
1.char s[81] = {‘1’ ,‘2’ };
2.char s[81] = {“12”};
3.char s[81] = “12”;
注:初始化及gets录入时,字符串末尾的后一个位置会自动补上 '\0’作为字符串的结束标志,占一格,因此字符串声明最好给 '\0’留一个位置
二、字符串的输入输出:
1.输入字符串:
(1).gets(s);
(2).scanf("%s",s,80);
注:VS使用gets_s和scanf_s。
二者的区别:
gets可录入空格,而scanf不会
2.输出字符串:
>1.一维字符串
(1).puts(s+n);
(2).printf("%s",s+n);
从第n个索引开始输出字符串
>2.二维字符串
利用二维数组可以处理多个字符串
(1).puts(ss[i]+n);
(2).puts(&ss[i][n]); (注意&符号)
从第n个索引开始输出第 i 个字符串
三、字符串的特殊函数(注意在使用时添加string.h头文件)
函数格式 | 介绍 | 返回值 |
---|---|---|
strlen(s); | 计算字符串的有效长度 | int |
sizeof(s); | 计算字符串所占内存的大小 | int |
strcat(s1,s2); | 将s2的有效字符加到s1的后面(s2可以是字符串常量而s1不可以) | 无 |
strcpy(s1,s2); | 将s2的有效字符覆盖s1的有效字符 | 无 |
strncpy(s1,s2,n); | 取s2的三个字符覆盖s1的前三个字符 | 无 |
strcmp(s1,s2); | 比较字符串长度大小 ( s1>s2返回1 , 以此类推 0和1 ) | 1,0,-1 |
strupr(s); | 将所有小写字母转换为大写字母 | 无 |
strlwr(s); | 将所有大写字母转换为小写字母 | 无 |