给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。
如下实例示例:
输入:"ab-cd"
输出:"dc-ba"
#include <stdio.h>
#include <string.h>
void main(){
char str[128],ch;
int len,i,j;
printf("Please input a string:");
gets(str);
len=strlen(str);
for(i=0,j=len-1;i<j;i++,j--){
while(!(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z'))
i++;
while(!(str[j]>='a'&&str[j]<='z'||str[j]>='A'&&str[j]<='Z'))
j--;
ch=str[i];
str[i]=str[j];
str[j]=ch;
}
printf("Result is:%s",str);
}
该题的思路和带空格的回文字符串判断思路相同,都是从字符串两端向中心靠拢,遇到满足条件的字符再做出相应的处理即可。