我需要从给定字符串中打印特定字符,例如给定字符串为"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]);
}
}
答案 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;
}