简陋实现版本,不考虑复杂情况
input: hello my book
output: book my hello
input: hello my book
output: book my hello
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
void reverse_chars(char *src, int start, int length) {
char *start_ptr = src + start;
for(unsigned int i = 0;i < length / 2; i++) {
char temp = *start_ptr;
*start_ptr = *(start_ptr + (length -1 - 2 * i));
*(start_ptr + (length -1 - 2 * i)) = temp;
start_ptr++;
}
}
int main() {
char origin_words[] = "hello my book";
int words_length = strlen(origin_words);
reverse_chars(origin_words, 0, words_length);
int last_index = 0;
for(unsigned i=0;i<=words_length;i++) {
if(*(origin_words + i) == ' ' || *(origin_words + i) == '\0') {
reverse_chars(origin_words, last_index, i - last_index);
last_index = i + 1;
}
}
printf("%s \n", origin_words);
}
本文介绍了一个简单的C语言程序,该程序能够实现字符串中单词的反转功能。通过对输入的字符串进行逐词处理并反转每个单词内的字符顺序,最终输出反转后的字符串。此程序利用了基本的字符串操作函数,并通过自定义函数`reverse_chars`来实现字符反转。

被折叠的 条评论
为什么被折叠?



