以下是 <string.h> 中一些常见的函数和宏:
1. 字符串复制和连接:
- strcpy(char *dest, const char *src):将字符串 src 复制到字符串 dest。
- strncpy(char *dest, const char *src, size_t n):将字符串 src 的前 n 个字符复制到字符串 dest。
- strcat(char *dest, const char *src):将字符串 src 连接到字符串 dest 的末尾。
- strncat(char *dest, const char *src, size_t n):将字符串 src 的前 n 个字符连接到字符串 dest 的末尾。
2. 字符串比较:
- strcmp(const char *str1, const char *str2):比较字符串 str1 和 str2。
- strncmp(const char *str1, const char *str2, size_t n):比较字符串 str1 和 str2 的前 n 个字符。
3. 字符串搜索和查找:
- strlen(const char *str):返回字符串 str 的长度(不包括 null 终止符)。
- strchr(const char *str, int c):在字符串 str 中查找字符 c 的第一个匹配位置。
- strrchr(const char *str, int c):在字符串 str 中查找字符 c 的最后一个匹配位置。
- strstr(const char *haystack, const char *needle):在字符串 haystack 中查找子字符串 needle 的第一次出现。
4. 字符串操作:
- memset(void *ptr, int value, size_t num):将指定的值复制到指定的内存区域。
- memcpy(void *dest, const void *src, size_t n):将内存区域 src 的前 n 个字节复制到内存区域 dest。
- memmove(void *dest, const void *src, size_t n):与 memcpy 类似,但处理重叠的内存区域。
以下是一个简单的例子,演示了 <string.h> 中的一些基本用法:
#include <stdio.h>
#include <string.h>
int main() {
// 字符串复制和连接
char dest[20] = "Hello, ";
const char *src = "world!";
strcat(dest, src);
printf("Concatenated String: %s\n", dest);
// 字符串比较
const char *str1 = "apple";
const char *str2 = "banana";
int result = strcmp(str1, str2);
if (result < 0) {
printf("%s comes before %s\n", str1, str2);
} else if (result > 0) {
printf("%s comes after %s\n", str1, str2);
} else {
printf("%s is equal to %s\n", str1, str2);
}
// 字符串搜索和查找
const char *haystack = "Hello, world!";
const char *needle = "world";
char *result_ptr = strstr(haystack, needle);
if (result_ptr != NULL) {
printf("Found substring at position: %ld\n", result_ptr - haystack);
} else {
printf("Substring not found\n");
}
return 0;
}
在这个例子中,我们使用了 <string.h> 中的函数来进行字符串的连接、比较、搜索等操作。这些函数是 C 语言中处理字符串的基础工具。
转载请注明出处:http://www.zyzy.cn/article/detail/3212/C语言