使用C程序查找给定字符串中的反向单词

时间:2018-11-15 01:36:30

标签: c

实际上,我已经搜索了1个多星期,找到了使用C在给定字符串中查找反向单词的解决方案。我的问题是,给了我这样的字符串“ bakelovekac”。在这里,我在字符串中将“ ake”的反义词表示为“ eka”。现在,我需要找出给定字符串中的反向单词并将其打印出来。怎么做到呢?预先感谢!

2 个答案:

答案 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;
    }

谢谢。