2014-03-02 3 views
2

당신은 내 문제를 해결하는 방법을 제안 할 수 있습니다. 이런 식으로하려고 해요. 두 개의 문자열이 있습니다. 이 중 하나에서 나는 다른 문자 하나에 문자가 많은 텍스트를 가지고 있습니다. 예를 들면 : B. 코드를 만들 수 있다면 B 문자로 시작하는 모든 단어를 찾을 수 있습니까?문자열에서 특정 문자로 시작하는 모든 단어를 찾습니다. C 언어

+0

에 도움이 될 수 있습니다. 먼저 코드를 직접 작성하십시오. –

+0

가능한 [첫 번째 문자가 같은 단어 찾기] (http://stackoverflow.com/questions/22127149/finding-words-with-the-same-first-character) – dasblinkenlight

답변

0

strcmp() 함수를 사용할 수 있습니다. "string.h"헤더에 포함됩니다.

int strcmp (string 1, string2) :이 함수는 매개 변수로 전달 된 두 문자열을 비교하고 + ve 숫자, 0, -ve 숫자를 반환합니다.

+ ve 값은 string1> string2를 나타냅니다. 0은 문자열 1과 문자열 2가 같음을 나타냅니다. -ve 값은 문자열 1 < 문자열 2를 나타냅니다.

1

strtok()을 사용하여 문자열을 단어로 나눌 수 있습니다. 첫 번째 문자열에서 단어를 얻으면 각 단어가 주어진 문자로 시작하는지 확인할 수 있습니다. 이 link 당신에게 strtok를 사용하는 방법에 대한 아이디어를 줄 수 있습니다.

문자열 라이브러리 함수를 사용하거나 문자열을 문자 배열로 사용하는 방법은 여러 가지가 있습니다. 그것은 strtok()을 사용하여 말한 직접적인 메서드 중 하나입니다.

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(); 
} 
관련 문제