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;
}