读书人

关于puts()的用法 (急)!

发布时间: 2012-02-23 22:01:36 作者: rapoo

求教:关于puts()的用法 (急)!!
main()
{
char *p = 0;
while( *p != '* ')
{
printf( "Please enter text line: ");
gets(p);
while (*p != '\0 ')
{
if (*p> 96 && *p <127)
{*p-=32;}
p++;
}
puts(*p);
p = NULL;
}
printf( "Have a nice day ");
}

想请问一下各位高手:
1)为什么我用printf( "%s ", *p);或者 puts(p); 替换 puts(*p),会拿不到东西?
2)为什么我输入 "* "之后,还是会输出一个“*”之后才给我”Have a nice day ",但是我用put(p),虽然没有任何输出,但是当我输入“*”时,却给我正确的“Have a nice day ",并没有多输出一个“*”?
请大家指点一下!!谢谢!!



[解决办法]
帮你改了

int main()
{
char sz[128];
char* p = sz;
while( *p != '* ')
{
printf( "Please enter text line: ");
gets(p);
while (*p != '\0 ')
{
if (*p> 96 && *p <127)
{*p-=32;}
p++;
}
p = sz;
puts(p);
}
printf( "Have a nice day ");

return 0;
}

[解决办法]
int main()
{
char sz[128];
char* p = sz;
while( *p != '* ')
{
printf( "Please enter text line: ");
gets(p);
if(*p == '* ')
break;
while (*p != '\0 ')
{
if (*p> 96 && *p <127)
{*p-=32;}
p++;
}
p = sz;
puts(p);
}
printf( "Have a nice day ");

return 0;
}
[解决办法]
#include <stdio.h>
int main()
{
char sz[128]={ '\0 '};
char* p = sz;
do{
if(*p!= '\0 ')
puts(p);
printf( "Please enter text line: ");
gets(p);
while (*p != '\0 ')
{
if (*p> 96 && *p <127)
*p-=32;
p++;
}
p = sz;
}while( *p != '* ');

printf( "Have a nice day ");

return 0;
}
[解决办法]
void main()
{
char *p;
char str[20];
p=str;
while(*p!= '* ')
{
printf( "Please enter text line: ");


gets(p);
while(*p!= '\0 ')
{
if (*p> 96 && *p <127)
*p-=32;
if(*p== '* ')
{
printf( "Have a nice day ");
getch();
exit(0);
}
p++;
}
puts(str);
p=str;
}
}

读书人网 >C语言

热点推荐