[c]代码库
#include <stdio.h>
#include <string.h>
#define MAX_STRING 200
/*字符串翻转,单词翻转算法*/
void reverse_string(char str[MAX_STRING], int start, int end) {
char tmp = 0;
/* 将整个字符串翻转 */
while(start < end) {
/* 交换两个元素值 */
tmp = str[start];
str[start] = str[end];
str[end] = tmp;
/* 改变索引值 */
++start;
--end;
}
}
int main(void) {
int i = 0;
int j = 0;
char str[MAX_STRING] = {0};
int length = 0;
char tmp = 0;
int start = 0;
int end = 0;
i = 0;
printf("Input riginal string:\n");
gets(str);
length = strlen(str);
/* 将整个字符串翻转 */
reverse_string(str, 0, length - 1);
printf("Step 1:\n");
puts(str);
i = 0;
start = 0;
/* 依次翻转其中的每一个单词 */
while(i < length) {
/* 翻转其中的一个单词 */
if (str[i] != ' ') { /* 找到单词开头 */
start = i;
while(str[i] != ' ' && str[i] != '\0') /* 找到单词结尾 */
++i;
reverse_string(str, start, i - 1);
}
++i;
}
printf("Step 2:\n");
puts(str);
return 0;
}
by: 发表于:2017-08-21 14:29:47 顶(0) | 踩(0) 回复
??
回复评论