如何修改特定地址的值

u010576908 2015-04-10 10:49:44
#include<stdio.h>
#include<string.h>
int main()
{
char *c="im the best";
char *fynd=strstr(c,"b");
printf("%s\n",c);
*fynd='6';
printf("%s\n",c);
printf("%s\n",fynd);

return 0;
}

我的目的是将c串中的"im the best"改为"im the 6est",但F9后就会弹出程序崩溃的框,这是为什么呢
...全文
192 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
苏叔叔 2015-04-11
  • 打赏
  • 举报
回复
修改如下:

#include<stdio.h>
#include<string.h>
int main()
{
	//char *c = "im the best";    //c指向一常量,不可对常量修改
	char c[] = "im the best";     //等价于 c[12]={'i','m',' ','t','h','e',' ','b','e','s','t','\0'};
	char *fynd = strstr(c, "b");
	printf("%s\n", c);
	*fynd = '6';
	printf("%s\n", c);
	printf("%s\n", fynd);

	return 0;
}
//im the best
//im the 6est
//6best
Isnis-fallen 2015-04-11
  • 打赏
  • 举报
回复
字符串常量不可 修改
super_miker 2015-04-10
  • 打赏
  • 举报
回复
字符串常量的类型是const char *,你用char *很容易出错. 于是改成:
char c[]="im the best";

69,371

社区成员

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

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