📅  最后修改于: 2023-12-03 14:39:40.280000             🧑  作者: Mango
该问题涉及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要求你编写一个函数,该函数接受一个字符串作为参数,并返回字符串中最后一个单词的长度。如果字符串中没有单词,则返回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;
}