社区
C++ 语言
帖子详情
字符串操作的错误。编译没错,运行不了
cobra_chen
2010-07-13 11:51:39
bool Fun(char *str)
{
while(*str != '\0')
{
if(*str == 't')
{
*str = ' '; //调试在这走不下去了
}
str++;
}
return true;
}
void main()
{
char *str = "string test";
Fun(str);
cout<<str<<endl;
}
用指针把字符串里的't',改成' '。
用的VS2005编译器,
到这走不下去了。不知道为什么?
...全文
96
9
打赏
收藏
字符串操作的错误。编译没错,运行不了
bool Fun(char *str) { while(*str != '\0') { if(*str == 't') { *str = ' '; //调试在这走不下去了 } str++; } return true; } void main() { char *str = "string test"; Fun(str); cout<<str<<endl; } 用指针把字符串里的't',改成' '。 用的VS2005编译器, 到这走不下去了。不知道为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
leonleo
2010-07-13
打赏
举报
回复
调试了一下你的代码,问题出在字符串所在的内存区域是只读,所以写入会引起异常。把字符串定义改为char str[] = "string test";就可以避开这个只读属性的限制
紫色动力
2010-07-13
打赏
举报
回复
[Quote=引用 3 楼 cobra_chen 的回复:]
引用 1 楼 michael122 的回复:
str只是一个指针,指向一个常量字符串,本身没有空间
任何对它指向的内容的修改都是错误的
你应该申请一个字符数组就可以了
char *str = "string test";
不是已经申请了空间了么?
然后把这段空间的首地址给str,然后str再传给Fun里的str,不就可以用到申请的那段空间了么?.
如果我的理解错了的话,那应该……
[/Quote]
你这样做并没有申请空间。只是把一个常量赋值给指针,是会报错的。用malloc或者new才是申请空间。
yuhuaijun
2010-07-13
打赏
举报
回复
[Quote=引用 1 楼 michael122 的回复:]
str只是一个指针,指向一个常量字符串,本身没有空间
任何对它指向的内容的修改都是错误的
你应该申请一个字符数组就可以了
[/Quote]
赞
zhangweiit
2010-07-13
打赏
举报
回复
"不是已经申请了空间了么?"
这个,应该不能说是申请了空间
char *str = "string test";
这一个语句的效果是这样的
"string test",保存在函数栈空间中
然后,*str指向它
"string test"的空间是不可修改的,因为是一个常量
而Func试图去修改它
*str = ' ';
笨笨周0915
2010-07-13
打赏
举报
回复
如果str指向的是常量区的话,那么会报错的,不能修改常量字符串,如果非常量字符串的话则可以Fun("aaaaa");或者 char* lp = "aaaa"; Fun(lp);这样肯定报错,char lp [] = "string test";这不会的
cobra_chen
2010-07-13
打赏
举报
回复
看来还是要好好看看指针。
cobra_chen
2010-07-13
打赏
举报
回复
[Quote=引用 1 楼 michael122 的回复:]
str只是一个指针,指向一个常量字符串,本身没有空间
任何对它指向的内容的修改都是错误的
你应该申请一个字符数组就可以了
[/Quote]
char *str = "string test";
不是已经申请了空间了么?
然后把这段空间的首地址给str,然后str再传给Fun里的str,不就可以用到申请的那段空间了么?.
如果我的理解错了的话,那应该怎么理解呢?
Fun里是不是不能对那段地址进行修改呢?
ArmStronger
2010-07-13
打赏
举报
回复
[Quote=引用 1 楼 michael122 的回复:]
str只是一个指针,指向一个常量字符串,本身没有空间
任何对它指向的内容的修改都是错误的
你应该申请一个字符数组就可以了
[/Quote]
char str[] = "string test";
michael122
2010-07-13
打赏
举报
回复
str只是一个指针,指向一个常量字符串,本身没有空间
任何对它指向的内容的修改都是错误的
你应该申请一个字符数组就可以了
c语言没
错误
但运行不出来的,
编译
没错
但运行不出来,求高手解答 !!!!...
本文介绍了一个C++程序,通过定义静态数组存储人员信息,实现了按姓名查找地址和电话的功能。核心是`find_entry`、`lookup_address`和`lookup_phone`函数,展示了
字符串
处理和数组搜索的基本技巧。
字符串
相关
操作
函数
本文主要介绍了C语言中几个标准库的
字符串
操作
函数,包括计算
字符串
长度的strlen、判断
字符串
大小的strcmp、复制
字符串
的strcpy以及判断子串的strstr。详细说明了各函数的返回值、运行逻辑,还指出了使用字符数组时的注意事项。
【Java基础】
编译
运行 & 规范
本篇教程详细介绍Java编程的基础知识,包括如何编写、
编译
及运行第一个Java程序。讲解了类、方法、参数的概念,以及JVM、字节码、机器码的
编译
原理。同时,提供了编码规范建议。
编译
错误
问题解决
本文分享了一次
编译
错误
排查经历,介绍了如何通过简单的#pragmamessage辅助定位技术来快速锁定问题代码区域,同时提供了针对不同
操作
系统下64位整型常量定义的解决方案。
在自己的
编译
器上结果对到oj上
错误
_段
错误
产生的原因~
本文详细解析了段
错误
的概念及其产生的多种原因,包括访问不存在的内存地址、系统保护的内存地址、只读内存地址等情况,并提供了具体的代码示例。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章