字符串数组问题?

jdhsdj 2009-12-17 12:05:04
#include <stdio.h>
main( )
{
char a[81],*p=a;
char message[10];
message="Not Found"; //这行提示有问题
printf("Please enter a string:");
gets(a);
while(*p!='\0')
{
if(*p=='A')
{
message="Found";
break;
}
p++;
}
puts(message);
}




...全文
41 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wightmight 2009-12-17
  • 打赏
  • 举报
回复
message="Found";
这样是错误的。注意message只是char 数组的地址

定义是可以直接初始化
char message[10] = "Not Found";
或 修改时
sprintf(message,"%s","Not Found");

jdhsdj 2009-12-17
  • 打赏
  • 举报
回复
//正确答案

main( )
{
char a[81],*p=a;
char * message;
message="Not Found";
printf("Please enter a string:");
gets(a);
while(*p)
{
if(*p=='A')
{
message="Found";
break;
}
p++;
}
puts(message);
}



kouwenlong 2009-12-17
  • 打赏
  • 举报
回复
char message[10];
message="Not Found"; //这行提示有问题
数组的首地址是常量地址,不能修改。message="Not Found";相当于将字符串的首地址赋值给message,当然会出现问题。
这样改下吧:
char *message = new char[10];
message = "Not Found";
qqwx_1986 2009-12-17
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <string.h>
main( )
{
char a[81],*p=a;
char message[10];
// message="Not Found"; //这行提示有问题
memcpy(message,"Not Found",10);
printf("Please enter a string:");
gets(a);
while(*p!='\0')
{
if(*p=='A')
{
// message="Found";
memcpy(message,"Found",10);
break;
}
p++;
}
puts(message);
getchar();
}

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧