C语言字符串操作常用函数

Aki 发布于 2022-11-06 250 次阅读


C语言中没有类似于 C++ string类似的定义,只有字符数组的形式,且定义一个字符数组时实际上是获得了一个指向字符数组的指针。例如 char s[4],s是一个 char* 指向第一个字符,注意有效字符是3个,因为最后一个字符是'\0'。

下面就是常用的函数:

char str[20];
fgets(str,10,stdin);
puts(str);

char str2[10];
strcmp(str,str2);
strcat_s(str,20,str2);
strcpy_s(str,20,str2);
strlen(str);

fgets():这个函数是安全版本的gets()函数,有三个参数,第一个是目的字符串指针,第二个是目的字符串大小,可以使用 strlen()+1 求出来,第三个是一个输入方式,默认是stdin。之所以是安全版本的函数是因为这个函数只会读取第二个参数范围内的字符,其他的字符忽略掉了,防止缓冲区溢出。

char s[4];   //注意有效字符是3个,因为最后一个字符是'\0'
fgets(s,4,stdin);
puts(s);

假设输入12345,输出的是123,3之后的都被忽略掉了

puts():就是输出字符串的函数,参数是一个字符串指针。它会输出字符并不断递增字符指针直到'\0'字符才停止输出。

strcmp():是一个字符串比较函数,参数为两个字符串指针。如果两个字符串相等就返回0,第一个字符串小于第二个字符串返回负数,第一个字符串大于第二个字符串返回正数。比较规则是:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。

strcat_s():是安全版本的strcat()函数,作用是连接两个字符串。有三个参数,第一个参数是目的字符串指针,第二个参数是目的字符串的大小,第三个参数是被连接的字符串。

    char str[8] = "1234";
    char str2[4] = "567";
    puts(str);
    strcat_s(str, 8, str2);
    puts(str);

strcpy_s():是安全版本的strcpy()函数,作用是复制一个字符串到另一个字符串。有三个参数,第一个是目的字符串指针,第二个是被复制的字符串大小,第三个是被复制的字符串。

    char str[5] = "1234";
    char str2[4] = "123";
    puts(str);
    strcpy_s(str, 4, str2);
    puts(str);

strlen():该函数返回一个字符串中有效字符的数量,参数为一个字符串指针,不包括'\0'。