实际上,我已经搜索了1个多星期,找到了使用C在给定字符串中查找反向单词的解决方案。我的问题是,给了我这样的字符串“ bakelovekac”。在这里,我在字符串中将“ ake”的反义词表示为“ eka”。现在,我需要找出给定字符串中的反向单词并将其打印出来。怎么做到呢?预先感谢!
答案 0 :(得分:0)
一种基本方法是遍历字符串的所有字符,并针对每个字符检查是否重复,如果是,则检查是否存在反向字符串。
上述方法的原始代码如下:
#include <stdio.h>
void checkForRevWord(char *str, char *rev){
int length = 0;
while(1){
if(str >= rev)
break;
if(*str != *rev)
break;
length++;
str++;
rev--;
}
if(length > 1){
while(length--)
printf("%c", *(rev+length+1));
printf("\n");
}
return;
}
int main()
{
char *inputStr = "bakelovekac";
char *cur = inputStr;
char *tmp;
while(*cur != '\0'){
tmp = cur+1;
/* find if current char gets repeated in the input string*/
while(*tmp != '\0'){
if(*tmp == *cur){
checkForRevWord(cur, tmp);
}
tmp++;
}
cur++;
}
}
答案 1 :(得分:0)
浏览此程序
#include <stdio.h>
#include <string.h>
int main()
{
char text[50]; //this character array to store string
int len,i;
printf("Enter a text\n");
scanf("%[^\n]s",text);//getting the user input with spaces until the end of the line
len=strlen(text);//getting the length of the array and assigning it the len variable
for(i=len-1;i>=0;i--)
{
printf("%c",text[i]); //printing the text from backwards
}
return 0;
}
谢谢。