用c语言编写程序,由标准输入读入一系列正文,把所有行依次输出,并在那些包含字符s的行前面标一个星号
程序哪里有问题?#include<stdio.h>#include<string.h>intmain(){inti,k;char*p[10];for(i=0;*p[i]!...
程序哪里有问题?
#include<stdio.h>
#include<string.h>
int main()
{
int i,k;
char *p[10];
for(i=0;*p[i]!=EOF;i++){
gets(p[i]);
k=i;
}
for(i=0;i<=k;i++){
if(strstr(p[i],s)!=NULL){
printf("*");
printf("%s",p[i]);
}
else
printf("%s",p[i]);
}
return 0;
} 展开
#include<stdio.h>
#include<string.h>
int main()
{
int i,k;
char *p[10];
for(i=0;*p[i]!=EOF;i++){
gets(p[i]);
k=i;
}
for(i=0;i<=k;i++){
if(strstr(p[i],s)!=NULL){
printf("*");
printf("%s",p[i]);
}
else
printf("%s",p[i]);
}
return 0;
} 展开
1个回答
展开全部
p是指针数组,包含10个指针. 问题是你这十个指针都没分配内存.
s没有定义. 这里应该用"s" 其实用strchr更好一些.
#include<stdio.h>
#include<string.h>
int main()
{
int i,k;
char p[10][100];
for(i=0;*p[i]!='\0';i++){
gets(p[i]);
k=i;
}
for(i=0;i<k;i++){
if(strstr(p[i],"s")!=NULL){
printf("*");
printf("%s\n",p[i]);
}
else
printf("%s\n",p[i]);
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询