1.0 字符串复制
1.1 strcpy() 完全复制
原型:char strcpy(char dest, char src);
功能:把从src地址开始且含有 ‘\0’结束符的字符串复制到以dest开始的地址空间
返回指向dest的指针
说明: src 和 dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串
1 int main()
2 {
3 char src【】="abcde";
4 char dest【100】;
5 strcpy(dest,src);
6 printf("%s",dest);
7 //输出] abcde
8 }
1.2 strncpy() 部分复制
原型: char strncpy(char dest, char src, int size_tn);
功能:将字符串src中最多n个字符复制到字符数组dest中(ta并不像strcpy一样遇到NULL才停止复制,而是等凑够n个字符才开始复制),返回指向dest的指针
说明:如果n > dest串长度,dest栈空间溢出产生崩溃异常
src串长度 <= dest串长度
如果n=(0, src串长度),src的前n个字符复制到dest中
但是由于没有NULL字符,所以直接访问dest串会发生栈溢出的异常情况
这时,一般建议采取memset将dest的全部元素用null填充
如果n = src串长度,与strcpy一致
如果n = dest串长度,【0,src串长度】处存放于desk字串,(src串长度, dest串长度】处存放NULL
src串长度 > dest串长度
如果n = dest串长度,则dest串没有NULL字符,会导致输出会有乱码
1 int main()
2 {
3 char src【】="SWT is so great! We should % him everyday.";
4 char dest【100】;
5
6 memset(dest,0,sizeof(dest));
7 strncpy(dest,src,10);
8 printf("%s\n",dest);
9 //输出]SWT is so
10
11 memset(dest,0,sizeof(dest));
12 strncpy(dest,src,sizeof(src));
13 printf("%s\n",dest);
14 //输出]SWT is so great! We should % him everyday.
15
16 memset(dest,0,sizeof(dest));
17 strncpy(dest,src,sizeof(dest));
18 printf("%s\n",dest);
19 //输出]SWT is so great! We should % him everyday.
20
21 char des【10】;
22 memset(des,0,sizeof(des));
23 strncpy(des,src,sizeof(src));
24 printf("%s\n",des);
25 //exe停止工作
26 }
2.0 字符串合并
2.1 strcat() 完全合并
原型: char strcat(char dest, char src);
功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的 ‘\0’)并添加 ‘\0’
返回指向dest的指针
说明: src 和 dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串
1 int main()
2 {
3 char src【】="OI!";
4 char dest【】="We like ";
5 strcat(dest,src);
6 printf("%s",dest);
7 //输出]We like OI!
8 }
2.2 strncat() 部分合并
原型: char strncat(char dest, char src, int n);
功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的 ‘\0’)并添加 ‘\0’
返回指向dest的指针
说明: src 和 dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串
1 int main()
2 {
3 char src【】="Please login in here!#$%@$@%@#$@%";
4 char dest【】="Welcome to the largest talking room of SLYZ! ";
5 strncat(dest,src,21);
6 printf("%s",dest);
7 //输出]Welcome to the largest talking room of SLYZ! Please login in here!
8 }
3.0 字符串查找
3.1 strchr() 查找字符
原型: char strchr(char s, char c);
功能: 查找字符串s中首次出现字符c的位置
说明: 返回首次出现c的位置的指针,如果s中不存在c则返回NULL
1 int main()
2 {
3 char src【】="Can you find some thing?";
4 int t=strchr(src,'?')-src;
5 printf("%d",t);
6 //输出]23
7 }
3.2 strchr() 查找字符串
原型: char strstr(char haystack, char needle);
功能: 从字符串haystack中寻找needle第一次出现的位置(不比较结束符”\0”)
说明: 返回指向第一次出现needle位置的指针,如果没找到则返回NULL
1 int main()
2 {
3 char src【】="Can you find some thing?";
4 int t=strstr(src,"thing")-src;
5 printf("%d",t);
6 //输出]18
7 }
4.0 字符串比较
4.1 strcmp() 区分大小写
原型: int strcmp(char s1, char s2);
功能: 比较字符串s1和s2,区分大小写
说明: 当s1 < s2时,返回值<0;
??? 当s1 = s2时,返回值=0;
??? 当s1 > s2时,返回值>0。
1 int main()
2 {
3 char src【】="Hello!";
4 char dest【】="hello!";
5 if (!strcmp(src,dest)) printf("SAME");
6 else printf("DIFFERENT");
7 //输出]DIFFERENT
8 }
4.2 stricmp() 不区分字母的大小写
原型: int stricmp(char s1, char s2);
功能: 比较字符串s1和s2,但不区分字母的大小写
说明: 当s1 < s2时,返回值<0;
??? 当s1 = s2时,返回值=0;
??? 当s1 > s2时,返回值>0。
1 int main()
2 {
3 char src【】="Hello!";
4 char dest【】="hello!";
5 if (!stricmp(src,dest)) printf("SAME");
6 else printf("DIFFERENT");
7 //输出]SAME
8 }
4.3 strncmp() 部分比较,区分字母的大小写
原型: int strncmp(char s1, char s2, int n);
功能: 比较字符串s1和s2的前n个字符
说明: 当s1 < s2时,返回值<0;
??? 当s1 = s2时,返回值=0;
??? 当s1 > s2时,返回值>0。
1 int main()
2 {
3 char src【】="A APPLE A DAY.";
4 char dest【】="a apple a day.";
5 if (strncmp(src,dest,8)==0) printf("SAME");
6 else printf("DIFFERENT");
7 //输出]DIFFERENT
8 }
4.4 strnicmp() 部分比较,不区分字母的大小写
原型: int strnicmp(char s1, char s2, int n);
功能: 比较字符串s1和s2的前n个字符但不区分大小写
说明: 当s1 < s2时,返回值<0;
??? 当s1 = s2时,返回值=0;
??? 当s1 > s2时,返回值>0。
1 int main()
2 {
3 char src【】="A APPLE A DAY.";
4 char dest【】="a apple a day.";
5 if (strnicmp(src,dest,8)==0) printf("SAME");
6 else printf("DIFFERENT");
7 //输出]SAME
8 }//代码效果参考:http://www.ezhiqi.com/bx/art_3641.html
5.0 字符串转化
5.1 strupr() 小写转大写
原型: char strupr(char s);
功能: 将字符串s转换为大写形式
说明: 只转换s中出现的小写字母,不改变其它字符
返回指向s的指针
1 int main()
2 {
3 char s【】="Let's % SWT together!";
4 strupr(s);
5 printf("%s",s);
6 //输出]LET'S % SWT TOGETHER!
7 }
5.2 strlwr() 大写转小写
原型: char strlwr(char s);
功能: 将字符串s转换为小写形式
说明: 只转换s中出现的大写字母,不改变其它字符
返回指向s的指针
1 int main()
2 {
3 char s【】="Let's % SWT together!";
4 strlwr(s);
5 printf("%s",s);
6 //输出]let's % swt together!
7 }
5.3 strrev() 字符串倒置
原型: char strrev(char* s);
功能: 把字符串s的所有字符的顺序颠倒过来(不包括空字符”\0”)
说明: 返回指向颠倒顺序后的字符串指针
1 int main()
2 {
3 char s【】="!uoy kcor lliw eW";
4 strrev(s);
5 printf("%s<