zoukankan      html  css  js  c++  java
  • 字符串处理总结

    一、字符串输入

    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
    ", str);
     9     } 
    10 
    11     return 0;
    12 }

     

    2. 输入整行字符串

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

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

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

      也可以使用 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
    ", 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
    ", str1, str2);    // str1<str2 
    11         } else if(ptr == 0) {                    // 返回值等于0
    12             printf("%s == %s
    ", str1, str2);    // str1=str2 
    13         } else {                                // 返回值大于0
    14             printf("%s > %s
    ", str1, str2);    // str1>str2
    15         }
    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
    ", strlen(str1));
    10     }
    11 
    12     return 0;
    13 }
  • 相关阅读:
    学用Fireworks中的特效1 建站之家
    网页页面尺寸一般设置多大才合适
    什么是哲学为基础的设计模式?
    10个步骤让你成为高效的Web开发者
    到移动开发大会 听《植物大战僵尸》成功秘诀
    [转]设置IE背景色保护你的眼睛视力_鹤壁吧_贴吧
    乔布斯在斯坦福大学演讲时说
    XQ4 logo1.html
    你是一位领导者吗?企业领导者必须具备的10种才能
    对不起,我已爱上你
  • 原文地址:https://www.cnblogs.com/coderJiebao/p/Csummary01.html
Copyright © 2011-2022 走看看