C语言编程题字符串

C语言中,字符串操作是一个非常常见的编程任务。C语言中常见的字符串操作,可以帮助更好地理解和掌握字符串的处理方法。每个题目都有其独特的学习点,能够帮助学生加深对C语言字符串操作的理解。

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

推荐阅读
cjavapy编程之路首页