我们可以使用 C 语言中的标准输入输出库 stdio.h 中的函数,通过读取字符并处理它们来拆分字符串、计算长度和反转单词。
以下是一个例子:
#include
/* 字符串反转函数 */
void reverse(char *str, int len) {
int i;
for (i = 0; i < len / 2; i++) {
char tmp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = tmp;
}
}
int main() {
char sentence[100];
printf("请输入一个字符串:");
scanf("%[^\n]s", sentence); // 读取一行输入,遇到换行符停止
int len = 0;
int word_start = 0;
int i;
for (i = 0; sentence[i]; i++) {
if (sentence[i] == ' ') { // 如果遇到空格,就计算单词长度并反转它
reverse(sentence + word_start, len);
printf("%.*s ", len, sentence + word_start); // 输出格式化的字符串,避免写入多余字符
len = 0;
word_start = i + 1;
} else {
len++;
}
}
reverse(sentence + word_start, len); // 反转最后一个单词
printf("%.*s\n", len, sentence + word_start); // 输出最后一个单词
return 0;
}
运行程序后,您可以像这样输入字符串:
请输入一个字符串:hello world! how are you?
然后您将获得以下输出:
olleh !dlrow woh era ?uoy
这是您需要的反转单词后的字符串。