C语言字符串和字符串函数
在C语言中,字符串是由一系列字符组成的字符数组。C语言中的字符串是以空字符('\0')结尾的字符数组。字符串常用于存储文本,比如打印、读取和传输文件内容等操作。C语言提供了许多字符串函数以简化字符串的操作和处理。
字符串的基本操作
字符串的定义和赋值
在C语言中,定义字符串有以下两种方式:
char str1[6] = {'h', 'e', 'l', 'l', 'o', '\0'}; // 使用字符数组来定义字符串,必须以'\0'结尾,否则该数组不是字符串类型
char str2[6] = "hello"; // 使用字符串字面量来定义字符串,自动在字符串末尾插入'\0'
为字符串变量赋值则可以使用赋值语句或使用strcpy函数进行赋值:
char str[20];
strcpy(str, "Hello, world!"); // 使用strcpy函数进行字符串赋值
字符串的输入和输出
在C语言中,使用printf()函数输出字符串,使用scanf()函数读取字符串。
char str[20] = "Hello, world!";
printf("字符串输出: %s\n", str); // 输出: Hello, world!
scanf("%s", str); // 读取字符串
字符串的比较
当需要比较两个字符串时,可以使用strcmp()函数进行比较,函数的返回值表示字符串的大小关系。如果返回值为0,则说明两个字符串相同;如果返回值小于0,则说明第一个字符串小于第二个字符串;如果返回值大于0,则说明第一个字符串大于第二个字符串。
char str1[20] = "Hello, world!";
char str2[20] = "World, hello!";
if (strcmp(str1, str2) == 0)
printf("两个字符串相同\n");
else
printf("两个字符串不同\n");
字符串函数
strlen()
strlen()函数用于计算字符串的长度。注意,返回的长度不包括字符串末尾的空字符('\0')。
char str[20] = "Hello, world!";
int len = strlen(str);
printf("字符串的长度为:%d\n", len); // 输出: 字符串的长度为:13
strcat()和strncat()
strcat()函数用于将两个字符串合并成一个字符串。该函数的第二个参数是要连接的字符串。strncat()函数也是用于字符串的连接,但是它允许指定要连接的长度。
char dest[20] = "Hello, ";
char src[10] = "world";
strcat(dest, src);
printf("连接之后的字符串为:%s\n", dest); // 输出:连接之后的字符串为:Hello, world
strncpy()和strncpy()
strncpy()函数用于将一个字符串复制到另一个空间,该函数的第三个参数指定要复制的字符数。需要注意的是,如果源字符串的长度小于指定数量,则目标字符串将以'\0'字符填充以补足长度。strncpy()函数和strcpy()函数的区别是strncpy()函数会在目标字符串中插入'\0'字符。
char src[20] = "Hello";
char dest[10];
strncpy(dest, src, 3);
dest[3] = '\0'; // 需要手动插入'\0'字符
printf("复制之后的字符串为:%s\n", dest); // 输出: 复制之后的字符串为:Hel
示例
示例1:去除字符串末尾的空格
#include <stdio.h>
#include <string.h>
void trim(char *str) {
int len = strlen(str);
while (str[len - 1] == ' ' || str[len - 1] == '\t' || str[len - 1] == '\n')
str[--len] = '\0'; // 逐个删除末尾的空格和换行符
}
int main() {
char str[20] = "Hello, world! ";
printf("原始字符串为:%s\n", str);
trim(str);
printf("修改之后的字符串为:%s\n", str);
return 0;
}
输出:
原始字符串为:Hello, world!
修改之后的字符串为:Hello, world!
示例2:统计字符串中某字符出现的次数
#include <stdio.h>
int countChar(char *str, char c) {
int count = 0;
while (*str) { // 循环直到字符串结束
if (*str == c) count++;
str++;
}
return count;
}
int main() {
char str[] = "Hello, world!";
char c = 'o';
int count = countChar(str, c);
printf("字符%c在字符串%s中出现了%d次\n", c, str, count);
return 0;
}
输出:
字符o在字符串Hello, world!中出现了2次
以上是C语言字符串和字符串函数的完整使用攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言 字符串和字符串函数 - Python技术站