📜  C |字串|问题2(1)

📅  最后修改于: 2023-12-03 14:59:38.208000             🧑  作者: Mango

C语言中的字符串问题2

在C语言中,字符串是由字符数组表示的。但是,在字符串处理过程中,经常会遇到需要对字符串进行操作的情况,如查找字符串、比较字符串、插入字符串等等。因此,了解字符串的各种操作函数及其使用方法对于开发C语言程序是至关重要的。

常用的字符串操作函数
strlen()

strlen()是一个字符串操作函数,用于计算一个以null('\0')结束的字符串的长度,不包括null本身。

#include <string.h>
size_t strlen(const char *s);
  • s-- 字符串指针。

该函数返回的是字符串s的长度。

#include<stdio.h>
#include<string.h>

int main(){
    char str[] = "Hello, World!";
    int len = strlen(str);
    printf("The length of the string is %d", len);
    return 0;
}

输出:

The length of the string is 13
strcat()

strcat()连接两个字符串s1和s2,将s2的内容添加到s1的结尾处,并以null('\0')字符结束字符串。

#include <string.h>
char *strcat(char *s1, const char *s2);
  • s1 --被连接的目标字符串。
  • s2 --要连接到目标字符串的源字符串。

该函数返回一个指向字符串s1的指针。

#include<stdio.h>
#include<string.h>

int main(){
    char dest[30] = "Hello, ";
    char src[] = "World!";
    strcat(dest, src);
    printf("The concatenated string is %s", dest);
    return 0;
}

输出:

The concatenated string is Hello, World!
strchr()

strchr()用于在源字符串s中查找特定字符c的第一个匹配项,并返回该字符的地址。如果找不到,函数将返回NULL。

#include <string.h>
char *strchr(const char *s, int c);
  • s --要搜索的字符串。
  • c --要查找的字符,通常是一个整数。

该函数返回指向c的指针,如果c未在s中出现,则返回NULL。

#include<stdio.h>
#include<string.h>

int main(){
    char str[] = "Hello, World!";
    char *ptr = strchr(str, 'W');
    printf("The character W is found at position %d", ptr-str+1);
    return 0;
}

输出:

The character W is found at position 8
strcmp()

strcmp()比较两个字符串s1和s2,并根据它们之间的ASCII值来确定它们的顺序。函数返回值是整数。

  • 当s1<s2时,strcmp()返回负数。
  • 当s1>s2时,strcmp()返回正数。
  • 当s1==s2时,strcmp()返回0。
#include <stdio.h>
#include <string.h>
 
int main () 
{
   char str1[15];
   char str2[15];
   int result;
 
   strcpy(str1, "Hello");
   strcpy(str2, "World");

   result = strcmp(str1, str2);
 
   if(result < 0) {
      printf("'%s' is less than '%s'\n", str1, str2);
   } else if(result > 0) {
      printf("'%s' is greater than '%s'\n", str1, str2);
   } else {
      printf("'%s' is equal to '%s'\n", str1, str2);
   }
   
   return 0;
}

输出:

'Hello' is less than 'World'
strrev()

strrev()函数用于反转一个字符串。原始字符串将被修改,反转后的字符串将被返回。

#include <string.h>
char *strrev(char *str);
  • str --指向要反转的字符串的指针。

该函数返回反转后的字符串的指针。

#include<stdio.h>
#include<string.h>

int main(){
    char str[] = "Hello, World!";
    strrev(str);
    printf("The reversed string is %s", str);
    return 0;
}

输出:

The reversed string is !dlroW ,olleH
总结

本文简要介绍了C语言中常用的字符串处理函数,包括strlen()、strcat()、strchr()、strcmp()和strrev()。了解这些函数的使用方法,对于使用C语言进行字符串操作的程序员来说是非常有价值的。