字符串处理总结

2018-02-10 13:07:30来源:cnblogs.com作者:Just_for_Myself人点击

分享

一、字符串输入

1. 输入单个字符串  

  可以使用 scanf 函数,以空格为分割输入字符串,代码如下:

 1 #include <stdio.h> 2 #include <string.h> 3  4 int main() { 5     char str[100]; 6     // 一个一个输入字符串,以空格为结尾  7     while(scanf("%s", str) != EOF) { 8         printf("%s/n", str); 9     } 10 11     return 0;12 }

 

2. 输入整行字符串

  可以使用 gets 函数,以 '/n' 为分割输入整行字符串,代码如下:

 1 #include <stdio.h> 2 #include <string.h> 3  4 int main() { 5     char str[100]; 6     // 以 '/n' 为分割输入整行字符串  7     while(gets(str) != NULL) { 8         printf("%s/n", str); 9     } 10 11     return 0;12 }

二、字符串处理

1. 字符串拷贝

  可以使用 strcpy 函数,代码如下:

#include <stdio.h>#include <string.h>int main() {    char str1[100], str2[100];    // 一个一个输入字符串,以空格为结尾     while(scanf("%s", str1) != EOF) {        strcpy(str2, str1);            // 将 str1 拷贝到 str2         printf("%s %s/n", str1, str2);    }    return 0;}

  注意:1. str1 会覆盖 str2 内容;2. 定义数组是,str2 长度要大于或等于 str1。

  也可以使用 strncpy 函数,代码如下:

 1 #include <stdio.h> 2 #include <string.h> 3  4 int main() { 5     char str1[100], str2[100]; 6     // 一个一个输入字符串,以空格为结尾  7     while(scanf("%s %s", str1, str2) != EOF) { 8         strncpy(str2, str1, 3);            // 将 str1的前3个字符 拷贝到 str1  9         printf("%s/n", str2);10     }11 12     return 0;13 }

  注意:str2 的前 n 个字符会被 str1 的前 n 个字符覆盖。

 

2. 字符串连接

  可以使用 strcat 函数,代码如下:

 1 #include <stdio.h> 2 #include <string.h> 3  4 int main() { 5     char str1[100], str2[100]; 6     // 一个一个输入字符串,以空格为结尾  7     while(scanf("%s %s", str1, str2) != EOF) { 8         strcat(str2, str1);            // 将 str1 接到 str2 后面  9         printf("%s/n", str2);10     }11 12     return 0;13 }

  注意:要注意 str2 的长度为 str1 与原 str2 长度之和,str2 最后的 '/0' 字符会自动消失。

  也可以使用 strncat 函数,将字符串的前 n 个字符连接到另一个字符后面,代码如下:

 1 #include <stdio.h> 2 #include <string.h> 3  4 int main() { 5     char str1[100], str2[100]; 6     // 一个一个输入字符串,以空格为结尾  7     while(scanf("%s %s", str1, str2) != EOF) { 8         strncat(str2, str1, 3);            // 将 str1 的前3个字符接到 str2 后面  9         printf("%s/n", str2);10     }11 12     return 0;13 }

3.  字符串比较

  可以使用 strcmp 函数,代码如下:

 1 #include <stdio.h> 2 #include <string.h> 3  4 int main() { 5     char str1[100], str2[100]; 6     // 一个一个输入字符串,以空格为结尾  7     while(scanf("%s %s", str1, str2) != EOF) { 8         int ptr = strcmp(str1, str2);            // 比较 str1,str2  9         if(ptr < 0) {                            // 返回值小于0 10             printf("%s < %s/n", str1, str2);    // str1<str2 11         } else if(ptr == 0) {                    // 返回值等于012             printf("%s == %s/n", str1, str2);    // str1=str2 13         } else {                                // 返回值大于014             printf("%s > %s/n", str1, str2);    // str1>str215         }16     }17 18     return 0;19 }

4. 字符串长度

  可以使用 strlen 函数,代码如下:

 1 #include <stdio.h> 2 #include <string.h> 3  4 int main() { 5     char str1[100]; 6     // 一个一个输入字符串,以空格为结尾  7     while(scanf("%s", str1) != EOF) { 8         // 输出字符串长度  9         printf("strlen = %d/n", strlen(str1));10     }11 12     return 0;13 }

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台