📜  C |字串|问题9(1)

📅  最后修改于: 2023-12-03 14:39:40.280000             🧑  作者: Mango

C | 字串 | 问题9

该问题涉及C语言中的字符串操作。在解决此问题之前,我们需要先了解C语言中字符串的基本概念和操作。

字符串的基本概念

在C语言中,字符串是一串字符的数组,以null字符('\0')结尾。可以使用字符数组或字符指针来表示和操作字符串。

char str[20] = "Hello, World!"; // 使用字符数组表示字符串
char *str = "Hello, World!";    // 使用字符指针表示字符串
字符串常用操作

C语言提供了许多字符串操作函数,可以对字符串进行各种操作和处理。

字符串长度

要计算字符串的长度,可以使用strlen函数。

#include <string.h>

char str[20] = "Hello, World!";
int length = strlen(str); // length = 13
字符串复制

要将一个字符串复制到另一个字符串中,可以使用strcpy函数。

#include <string.h>

char source[20] = "Hello, World!";
char destination[20];
strcpy(destination, source); // destination = "Hello, World!"
字符串连接

要将两个字符串连接起来,可以使用strcat函数。

#include <string.h>

char str1[20] = "Hello, ";
char str2[10] = "World!";
strcat(str1, str2); // str1 = "Hello, World!"
字符串比较

要比较两个字符串是否相等,可以使用strcmp函数。

#include <string.h>

char str1[20] = "Hello";
char str2[20] = "World";
int result = strcmp(str1, str2); // result < 0,表示str1 < str2
解决问题9

问题9要求你编写一个函数,该函数接受一个字符串作为参数,并返回字符串中最后一个单词的长度。如果字符串中没有单词,则返回0。

#include <stdio.h>

int getLastWordLength(char *str) {
    int length = 0;
    int i = 0;
    
    while (str[i] != '\0') {
        if (str[i] != ' ') {
            length++;
        } else if (str[i+1] != '\0' && str[i+1] != ' ') {
            length = 0;
        }
        
        i++;
    }
    
    return length;
}

int main() {
    char str[100];
    printf("请输入字符串:");
    fgets(str, sizeof(str), stdin);
    
    int lastWordLength = getLastWordLength(str);
    printf("最后一个单词的长度为:%d\n", lastWordLength);
    
    return 0;
}