c 语言中字符串并没有专门的类型定义,而是用连续的字符数组存储,并以转义
表示字符串结束,[是空字符,不能被输出。char
] s='1',{'2','3'};/*因为有#的存在,该字符串的所占的内存应该是 4个字节 */include
#
字符串相关 *** 作
需要引入头文件string.h
1.strcpy(s1,char s2)
把s2直接覆盖s1的值
includeint
main(
) char[14{
] str1="abcdefg"; char [14
] str2="kik"; printf ("%s"
,strcpy(,))str1;str2return0;
} #include
#
实际输出
kik
2.strcat(s1, s2);
把s2连接到s1的末尾
includeint
main(
) char[14{
] str1="abcdefg"; char [14
] str2="kik"; printf ("%s"
,strcat(,))str1;str2return0;
} #include
#
实际输出:
abcdefgkik
3.strlen(s1)
返回字符串s1的长度,不包含’\0‘
includeint
main(
) char[14{
] str1="abcdefg"; char [14
] str2="kik"; char [14
] str3;printf("%d"
,strlen());str2return0;
} #include
#
实际输出:
3
4.strcmp(s1, s2);
比较s1和s2,如果s1大于s2,则返回大于0,s1等于s2则返回值d等于0,s1小于s2则返回值小于0.
其实是根据 ASCII 编码依次比较 str1 和 str2 的每一个字符,直到字符串末尾。
includeint
main(
) char[14{
] str1="abcdefg"; char [14
] str2="abcdeg"; char [14
] str3;/*两个字符串前部相同 g的ASCII码大于f
所以结果返回-1*/printf(
"%d\n"
,strcmp(,))str1;str2/*两个字符串前部相同 直到"abc"全部比较完成
"abcd"长度较长 所以返回-1*/printf(
"%d\n"
,strcmp("abc","abcd"));/*与上面相反*/printf(
"%d\n"
,strcmp("abcd","abc"));printf("%d\n"
,strcmp("abd","abcd"));return0;
} #
include
实际输出:
-1
-1
1
1
- #
strchr(s,c) 返回一个指针 ,即字符c在字符串s中出现的第一次的位置
includeint
main(
) char[14{
] str1="abcdefg"; char [14
] str2="abcde"; char [14
] str3;printf("%c\n"
,*strchr(,'a')str1);printf("%s"
,strstr(,))str1;str2return0;
}
实际输出
a
abcdefg
仅为个人复习自用,有错误请指出!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)