在c中打印给定字符串中的某个特定字符

时间:2014-01-16 11:30:44

标签: c string

我需要从给定字符串中打印特定字符,例如给定字符串为"always god is great god bless you"

我需要打印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]);
        }
}

2 个答案:

答案 0 :(得分:1)

根据声明char name[10];,你有阵列出界的错误:

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

未定义的行为。

而不是if您使用了while(分号;在while之后)并且打印5时间内部循环计数器应该是不同的(不是j)。

顺便说一句,对于字符串"always god is great god bless you". 10 char数组很小。

答案 1 :(得分: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;

}