查找以特定字符开头的字符串中的所有单词。 C语言

时间:2014-03-02 10:45:39

标签: c find words

Maybie你可以建议如何解决我的问题。我正在尝试做这样的事情。 我有2个字符串。在其中一个中,我有一个带有许多单词的文本在另一个中我有一个字符,例如:B。如果可以编写代码,那么会找到以B字符开头的所有单词?

3 个答案:

答案 0 :(得分:1)

你可以使用strtok()将字符串分成单词。一旦你得到第一个字符串中的单词,那么你可以检查每个单词是否以给定的字母开头。这个link可以让你了解如何使用strtok。

使用字符串库函数或使用字符串作为字符数组,有很多方法可以做到这一点。这是我用strtok()告诉过的直接方法之一。

答案 1 :(得分:0)

您可以使用strcmp()函数。它包含在“string.h”标题下。

int strcmp(string 1,string2):此函数比较作为参数传递的两个字符串,并返回+ ve number,0,-ve number。

+ ve值表示string1>字符串2。 0表示string1和string2相等 -ve value表示string1<字符串2。

答案 2 :(得分:0)

这可能对您有所帮助

#include<stdio.h>
#include<conio.h>
int main()
{
    char *str;
    char ch;
    int i=0,j,count=0,len=0;
    clrscr();
    puts("Enter String");
    gets(str);
    puts("Enter Character");
    scanf("%c",&ch);
    len=strlen(str);
    printf("All words that start with character %c\n\n",ch);
    while(str[i]!='\0')      //to traverse the string
    {
        if((i==0)&&str[i]==ch)   //for first word
        {
            j=i;
            while(str[j]!=' ')
            {
                printf("%c",str[j]);
                j++;
            }
            printf(",");
        }
        if((str[i]==' ')&&(str[i+1]==ch))
        {
            j=i+1;
            while(str[j]!=' '&&j<len)       //for all other words
            {                               //j<len is used only if last word has same character
                printf("%c",str[j]);
                j++;
            }
            printf(",");
        }

        i++;
    }
    getch();
}