1、计算字符串长度
编写一个函数计算字符串的长度,类似于 strlen
函数。
#include <stdio.h> int stringLength(const char *str) { int length = 0; while (str[length] != '\0') { length++; } return length; } int main() { char str[] = "Hello, World!"; printf("Length of the string: %d\n", stringLength(str)); return 0; }
2、字符串比较
编写一个函数比较两个字符串,类似于 strcmp
函数。
#include <stdio.h> int stringCompare(const char *str1, const char *str2) { while (*str1 && (*str1 == *str2)) { str1++; str2++; } return *(unsigned char *)str1 - *(unsigned char *)str2; } int main() { char str1[] = "Hello"; char str2[] = "World"; printf("Comparison result: %d\n", stringCompare(str1, str2)); return 0; }
3、字符串复制
编写一个函数复制一个字符串到另一个字符串,类似于 strcpy
函数。
#include <stdio.h> void stringCopy(char *dest, const char *src) { while ((*dest++ = *src++)); } int main() { char src[] = "Hello, World!"; char dest[50]; stringCopy(dest, src); printf("Copied string: %s\n", dest); return 0; }
4、字符串连接
编写一个函数将两个字符串连接在一起,类似于 strcat
函数。
#include <stdio.h> void stringConcat(char *dest, const char *src) { while (*dest) { dest++; } while ((*dest++ = *src++)); } int main() { char dest[50] = "Hello"; char src[] = ", World!"; stringConcat(dest, src); printf("Concatenated string: %s\n", dest); return 0; }
5、字符串反转
编写一个函数反转一个字符串。
#include <stdio.h> #include <string.h> void reverseString(char *str) { int n = strlen(str); for (int i = 0; i < n / 2; i++) { char temp = str[i]; str[i] = str[n - i - 1]; str[n - i - 1] = temp; } } int main() { char str[] = "Hello, World!"; printf("Original: %s\n", str); reverseString(str); printf("Reversed: %s\n", str); return 0; }
6、查找子字符串
编写一个函数查找一个字符串中的子字符串,类似于 strstr
函数。
#include <stdio.h> char *stringSearch(const char *haystack, const char *needle) { if (!*needle) { return (char *)haystack; } for (; *haystack; haystack++) { if (*haystack == *needle) { const char *h = haystack, *n = needle; while (*h && *n && *h == *n) { h++; n++; } if (!*n) { return (char *)haystack; } } } return NULL; } int main() { char str[] = "Hello, World!"; char subStr[] = "World"; char *result = stringSearch(str, subStr); if (result) { printf("Substring found: %s\n", result); } else { printf("Substring not found.\n"); } return 0; }
7、字符串转大写
编写一个函数将字符串中的小写字母转换为大写字母,类似于 strupr
函数。
#include <stdio.h> void stringToUpper(char *str) { while (*str) { if (*str >= 'a' && *str <= 'z') { *str = *str - ('a' - 'A'); } str++; } } int main() { char str[] = "Hello, World!"; printf("Original: %s\n", str); stringToUpper(str); printf("Uppercase: %s\n", str); return 0; }