巧用字符串处理函数

    作者:课课家教育更新于: 2016-12-13 19:44:45

    大神带你学编程,欢迎选课

      想必学习过C语言的大家对C语言的字符数组和字符串都有一定的了解,对于初学者来说如何通过字符串处理函数便是一道重要的考验。那么究竟怎样通过字符串来对函数进行处理工作呢?下面课课家笔者就教大家如何通过字符串来处理函数。

      在C语言中,它给我们提供了丰富的字符串处理函数,比如字符串的输入、输出、合并、修改、比较、转换、复制、搜索等,我们通过使用这些现成的函数便可大大减轻编程时的压力。另外用于输入输出的字符串函数,比如printfputsscanfgets等,使用时应包含头文件stdio.h,使用其它字符串函数则应包含头文件string.h。下面笔者介绍几种常见字符串函数。

      ◎字符串长度函数strlen

      strlen是stringlength的缩写,用来获得字符串的长度。所谓长度就是包含多少个字符(不包括字符串结束标志'\0'),通常的语法格式为:strlen(array Name);。strlen将返回字符串的长度,它是一个整数,具体大家可以观察下面的例子:

      #include

      #include

      int main(){

      char str[]="C language";

      int len=strlen(str);

      printf("The lenth of the string is %d\n", len);

      return 0;

      }

      输出结果:

      The lenth of the string is 10

      这里需要给大家说明的是,strlen会从字符串的第0个字符开始计算,直到遇到字符串结束标志'\0'。将上面代码中的str改为:

      char str[]="C\0language";

      输出结果:

      The lenth of the string is 2

      ◎字符串连接函数strcat

      strcat是stringcatenate的缩写,意思是把两个字符串拼接在一起,通常的语法格式为:strcat(array Name1,array Name2);。array Name1、array Name2为需要拼接的字符串。strcat将把array Name2连接到array Name1后面,并删去array Name1最后的结束标志'\0'。这就意味着,array Name1的长度要足够,必须能够同时容纳array Name1和array Name2,否则会越界。strcat返回值为array Name1的首地址,具体大家可以观察下面的例子:

      #include

      #include

      int main(){

      char str1[40]="My name is";

      char str2[20];

      printf("Input your name:");

      gets(str2);

      strcat(str1,str2);

      puts(str1);

      return 0;

      }

      输出结果:

      Input your name:kokojia

      My name is kokojia

      ◎字符串复制函数strcpy

      strcpy是stringcopy的缩写,意思是字符串复制,通常的语法格式为:strcpy(arrayName1,arrayName2);。strcpy会把arrayName2中的字符串拷贝到arrayName1中,串结束标志'\0'也一同拷贝,具体大家可以观察下面的例子:

      #include

      #include

      int main(){

      char str1[15], str2[]="C Language";

      strcpy(str1,str2);

      puts(str1);

      printf("\n");

      return 0;

      }

      运行结果:

      C Language

      需要我们注意的地方是,strcat要求array Name1要有足够的长度,否则不能全部装入所拷贝的字符串。

      ◎字符串比较函数strcmp

      strcmp是stringcompare的缩写,意思是字符串比较,通常的语法格式为:strcmp(array Name1,array Name2);。array Name1和array Name2是需要比较的两个字符串。字符本身没有大小之分,strcmp()以各个字符对应的ASCII码值进行比较。strcmp()从两个字符串的第0个字符开始比较,如果它们相等,就继续比较下一个字符,直到遇见不同的字符,或者到字符串的末尾。返回值:若array Name1和array Name2相同,则返回0;若array Name1大于array Name2,则返回大于0的值;若array Name1小于array Name2,则返回小于0的值。以下是对4组字符串例子的比较。

      #include

      #include

      int main(){

      char*a = "aBcDeF";

      char*b = "AbCdEf";

      char*c = "aacdef";

      char*d = "aBcDeF";

      printf("strcmp(a,b):%d\n", strcmp(a,b));

      printf("strcmp(a,c):%d\n", strcmp(a,c));

      printf("strcmp(a,d):%d\n", strcmp(a,d));

      return 0;

      }

      运行结果:

      strcmp(a,b):1

      strcmp(a,c):-1

      strcmp(a,d):0

      以下是字符串处理函数的任意例子(与上文代码无关)(图1)

    字符串例子

    图1  

      本次巧用字符串处理函数的教程到此就暂告一段落了,如果以后有补充的话笔者会在此继续补充,同时也欢迎大家继续补充。最后希望这次的教程对大家学习C语言能够起到一定的帮助作用!

C语言 更多推荐

课课家教育

未登录

1