C语言
#include<stdio.h>char *march(char *str,char ch);
int main()
{
char ch,str,*p;
printf("Please Input the string:\n");
scanf("%s",str);
getchar();
ch = getchar();
if((p = march(str,ch))!=NULL)
{
printf("%s",p);//我这个地方如果改成*p为什么会输出失败?编译器不会把字符以字符串的方式输出吗?
}
else
{
printf("Not Found!");
}
}
char *march(char *str,char ch)
{
while(*str!='\0')
{
if(*str == ch)
{
return (str);
}
else
{
str++;
}
}
return (NULL);
}
编译器不会把字符以字符串的方式输出吗?
对,编译器不会把字符以字符串的方式输出。
在上一个贴子中,我已经针对这个问题简单说了一下
指针名是地址,加上*就不是地址而是一个确切的值了
%s输出,需要给一个地址,所以需要给指针名,而不是*指针
页:
[1]