Menu Close

C 语言操作字符串的函数

C语言有大量的字符串操作函数。

一)字符串操作函数

C 语言中中有大量操作字符串的函数:

例1.1.strlen()函数的应用

#include"string.h"
main()
{
    int k;
    static char st[]="C language";
    k=strlen(st);
    printf("The lenth of the string is %d\n",k);
}

 

二)字符串操作函数 的应用

strcmp() 用来比较字符串(区分大小写),其原型为:

strcmp(str1, str2);

【参数】str1, str2 为需要比较的两个字符串。

字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回。例如字符串”Ac”和”ba”比较则会返回字符”A”(65)和’b'(98)的差值(-33)。

【返回值】若参数s1 和s2 字符串相同则返回0。s1 若大于s2 则返回大于0 的值。s1 若小于s2 则返回小于0 的值。

例2.1:字符串比较函数strcmp()的应用

#include"string.h"
main()
{
   int k;
   static char st1[15],st2[]="C Language";
   printf("input a string:\n");
   gets(st1);
   k=strcmp(st1,st2);
   if(k==0) printf("st1=st2\n");
   if(k>0) printf("st1>st2\n");
   if(k<0) printf("st1<st2\n");
}

 

 

本程序中把输入的字符串和数组 st2 中的串比较,比较结果返回到 k 中,根据 k 值再输出结果提示串。

字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。

strcmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回。

例如字符串”Ac”和”ba”比较则会返回字符”A”(65)和’b'(98)的差值(-33)。

例2.2 两个字符串的操作函数实例

#include <stdio.h>
#include <string.h>
int main ()
{
    //string initialization
    char string1[15]="Hello";
    char string2[15]=" World!";
    char string3[15];
    int val;

    //string comparison
    val= strcmp(string1,string2);
    if(val==0)
    {
          printf("Strings are equal\n");
    }
    else
    {
          printf("Strings are not equal\n");
    }
    //string concatenation
    printf("Concatenated string:%s",strcat(string1,string2)); //string1 contains hello world!

    //string length
    printf("\nLength of first string:%d",strlen(string1));
    printf("\nLength of second string:%d",strlen(string2));

    //string copy
   printf("\nCopied string is:%s\n",strcpy(string3,string1));  //string1 is copied into string3
   return 0;
}
 

 

一些重要的字符串操作函数

  • strncmp(str1, str2, n) : 如果str1的前n个字符等于str2的前n个字符,则返回0;如果str1 <str2,则返回0;如果str1> str2,则返回0;
  • strncpy(str1, str2, n) 此函数用于从另一个字符串复制一个字符串。 将str2的前n个字符复制到str1;
  • strchr(str1, c): 它返回一个指向str1中首次出现的char c的指针,如果找不到字符,则返回NULL;
  • strrchr(str1, c): 它反向搜索str1并返回一个指向str 1中char c位置的指针;如果找不到字符,则返回NULL;
  • strstr(str1, str2): 它返回一个指向str1中首次出现的str2的指针,如果未找到str2,则返回NULL;
  • strncat(str1, str2, n) 将str2的前n个字符附加(连接)到str1的末尾,并返回指向str1的指针;
  • strlwr() :将字符串转换为小写;
  • strupr() :将字符串转换为大写;
  • strrev() : 反转字符串

 

除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Leave the field below empty!

Posted in C语言教程

Related Posts