2014-01-16 4 views
0

주어진 문자열에서 특정 문자를 인쇄해야합니다. 예를 들어 주어진 문자열은 "always god is great god bless you"입니다.주어진 문자열에서 특정 문자를 C로 인쇄하십시오.

인쇄물이 필요합니다. god.

횟수가 많아서 n 번 인쇄하고 특정 위치까지 인쇄하고 싶습니다. god.

나는 다음과 같은 프로그램을 사용하여 작업을 수행하려고하지만 내 예상 출력하지 않습니다 선언 char name[10];에 따르면

#include <stdio.h> 
int main(void) 
{ 
    int i,j; 
    char name[10]; 
    printf("enter the string\n"); 

    for(i=0;i<=10;i++) 
     scanf("%c",&name[i]); 

    printf("ur entered string is:"); 

    for(j=0 ; j<=10 ; j++) 
     while(name[j] == 'g'); 
     { 
     for(j=0 ; j<=5 ; j++) 
      printf("%c",name[j]); 
     } 
} 
+1

많이! –

+0

'i = 0; i <= 10'은'i <10'이어야합니다. 또한 왜'j = 0; j <= 5'? "신"은 3 개의 글자를 가지고 있는데, 왜 6을 얻는가? 그리고 당신은 또한 "위대한"에서 "g"를 만나게 될 것입니다. 귀하의 코드는 귀하의 문제를 해결하려고 시도조차하지 않습니다. – zoska

답변

1

을, 당신은 바운드 버그에서 배열을 :

for(i=0;i<=10;i++) 
     ^^^^^ should be < 10 

정의되지 않은 행동. 당신이 while 사용하고 대신 if

(세미콜론, 잠시 후) 및 내부 루프 카운터가 다른 (하지 j)해야 5 시간을 인쇄 할 수 있습니다.

Btw, 문자열의 경우 "always god is great god bless you". 10 문자 배열이 작습니다.

+0

선생님, 고마워요. 나는 그것을 시도 할 것입니다 ...하지만 나는 입력을주는 동안에만 10 문자 배열 내에서주었습니다. ... – user3202243

+0

10 번째 char max 인덱스에 대한 @ user3202243 예 9 –

0

더 큰 문자열에서 특정 문자열을 찾으려면 strstr() 함수를 사용할 수 있습니다. 함수에 따라 코드가 수정되지만이 방법으로는 12 자의 문자열 만 입력하면됩니다.

int main(void) 
{ 
    char str[12], *ext="God",*srch; 
    int i; 
    printf("enter the string\n"); 
    for(i=0;i<=10;i++) 
    scanf("%c",&str[i]); 
    srch=strstr(str,ext); 
    if(srch!=NULL) 
    for(i=0;i<=5;i++) 
    printf("%c", srch[i]); 
return 0; 

} 가까이에 투표 작은 코드에서 오류의

+0

예. 실제로 시도합니다.하지만 실제로 저는 일부 컨트롤러가 문자열 기능을 허용하지 않을 수 있도록 마이크로 컨트롤러 용이 프로그램을 작성하십시오 ... – user3202243

관련 문제