2014-01-16 42 views
0

我需要從給定的字符串打印特定的字符,例如給定的字符串是"always god is great god bless you"從給定的字符串打印一些特定的字符在c

我需要打印god

它可能被發現的次數,所以我想打印n次,我也想打印,直到從god某個特定的位置。

我試着用下面的程序去做,但不要讓我的預期輸出:

#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;我<= 10'應該是'我<10'。也爲什麼'j = 0; Ĵ<= 5'? 「上帝」有3個字母,爲什麼得到6?你也會在「很棒」中遇到'g'。你的代碼甚至不會嘗試解決你的問題。 – zoska

回答

1

根據聲明char name[10];,你有數組出界錯誤的:

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

未定義行爲。

相反的if你已經使用while(分號;而之後),並打印5時間內的循環計數器應該是不同的(不j)。

順便說一下,對於字符串"always god is great god bless you". 10個字符數組很小。

+0

謝謝你先生...我會嘗試它...但我給了10個字符陣列只有當我給予輸入... – user3202243

+0

@ user3202243第10個字符最大索引是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

是啊我試試it.but其實我爲微控制器編寫該程序,以便某些控制器可能不接受字符串函數... – user3202243