C 字符串学习笔记
1. 什么是字符串?
在 C 语言中,字符串是由一系列字符组成的字符数组。字符串以 null 字符(\0)结尾,表示字符串的结束。例如:
cCopy Codechar str[] = "Hello, World!";
这里定义了一个字符数组 str
,用来存储字符串 "Hello, World!"。注意,在末尾还有一个 null 字符。
2. 字符串的常用操作
2.1 字符串的输入输出
可以使用 printf()
函数来输出字符串,使用 %s
格式化字符串:
cCopy Codechar str[] = "Hello, World!";
printf("字符串为:%s\n", str);
同样地,可以使用 scanf()
函数来输入字符串,使用 %s
格式化字符串:
cCopy Codechar str[100];
printf("请输入字符串:");
scanf("%s", str);
printf("输入的字符串为:%s\n", str);
2.2 字符串的长度
可以使用 strlen()
函数来获取字符串的长度,不包括结尾的 null 字符:
cCopy Codechar str[] = "Hello, World!";
int len = strlen(str);
printf("字符串长度为:%d\n", len);
2.3 字符串的拷贝
可以使用 strcpy()
函数来将一个字符串复制到另一个字符串中:
cCopy Codechar src[] = "Hello, World!"; // 原字符串
char dest[100]; // 目标字符串
strcpy(dest, src); // 将原字符串复制到目标字符串中
2.4 字符串的连接
可以使用 strcat()
函数将两个字符串连接起来:
cCopy Codechar str1[] = "Hello, ";
char str2[] = "World!";
strcat(str1, str2); // 将 str2 连接到 str1 的末尾
printf("连接后的字符串为:%s\n", str1);
2.5 字符串的比较
可以使用 strcmp()
函数来比较两个字符串是否相等:
cCopy Codechar str1[] = "Hello";
char str2[] = "World";
if (strcmp(str1, str2) == 0) {
printf("两个字符串相等\n");
} else {
printf("两个字符串不相等\n");
}
3. 实例
下面是一个简单的例子,演示了如何从键盘输入一个字符串,并输出该字符串的长度、复制一份、反转以及查找某个字母的位置:
cCopy Code#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100], reverse[100];
char ch;
int i, len;
printf("请输入一个字符串:");
scanf("%s", str1);
len = strlen(str1);
printf("字符串长度为:%d\n", len);
strcpy(str2, str1);
printf("复制后的字符串:%s\n", str2);
for (i = 0; i < len; i++) {
reverse[i] = str1[len - i - 1];
}
reverse[len] = '\0';
printf("反转后的字符串:%s\n", reverse);
printf("请输入一个字母:");
scanf(" %c", &ch);
for (i = 0; i < len; i++) {
if (str1[i] == ch) {
printf("%c 在字符串中的位置为 %d\n", ch, i + 1);
break;
}
}
return 0;
}
上面的程序演示了字符串的基本操作,包括输入输出、长度、复制、反转以及查找指定字符的位置。