C语言编写本章中的6个字符串处理函数
时间: 2023-06-15 17:03:04 浏览: 113
1. `int strlen(const char *str)`:用于获取字符串的长度,返回字符串中的字符个数,不包括字符串末尾的 '\0'。
```c
int strlen(const char *str) {
int len = 0;
while (*str != '\0') {
len++;
str++;
}
return len;
}
```
2. `char *strcpy(char *dest, const char *src)`:用于将一个字符串拷贝到另一个字符串中,返回目标字符串的首地址。
```c
char *strcpy(char *dest, const char *src) {
char *p = dest;
while ((*p++ = *src++) != '\0');
return dest;
}
```
3. `char *strcat(char *dest, const char *src)`:用于将两个字符串连接起来,返回目标字符串的首地址。
```c
char *strcat(char *dest, const char *src) {
char *p = dest;
while (*p != '\0') {
p++;
}
while ((*p++ = *src++) != '\0');
return dest;
}
```
4. `int strcmp(const char *s1, const char *s2)`:用于比较两个字符串,返回一个整数值,表示两个字符串的大小关系。
```c
int strcmp(const char *s1, const char *s2) {
while (*s1 != '\0' && *s2 != '\0' && *s1 == *s2) {
s1++;
s2++;
}
return *s1 - *s2;
}
```
5. `char *strchr(const char *str, int c)`:用于在字符串中查找某个字符,返回该字符在字符串中第一次出现的位置,如果未找到,则返回 NULL。
```c
char *strchr(const char *str, int c) {
while (*str != '\0') {
if (*str == (char)c) {
return (char *)str;
}
str++;
}
return NULL;
}
```
6. `char *strstr(const char *str1, const char *str2)`:用于在字符串中查找另一个字符串,返回第二个字符串在第一个字符串中第一次出现的位置,如果未找到,则返回 NULL。
```c
char *strstr(const char *str1, const char *str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
if (len1 < len2) {
return NULL;
}
if (len2 == 0) {
return (char *)str1;
}
int i, j;
for (i = 0; i < len1 - len2 + 1; i++) {
for (j = 0; j < len2; j++) {
if (str1[i + j] != str2[j]) {
break;
}
}
if (j == len2) {
return (char *)(str1 + i);
}
}
return NULL;
}
```
阅读全文