【求助】请问char* str和 char str[]有什么区别?谢谢!

c00der 2010-07-30 10:38:58
在使用strtok时发现:
char strTest[] = "what is the difference"; //正常
char *strTest = "what is the difference"; //运行时错误

另外,如果字符串末尾没有空格,如何取出最后一个单词?比如这里的differcence

谢谢!
...全文
143 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
weishifeidi 2010-07-30
  • 打赏
  • 举报
回复
char *str这是个指针,给它赋值时应该是个内存地址,而不是直接写你的字符串
weishifeidi 2010-07-30
  • 打赏
  • 举报
回复
char *str这是个指针,给它赋值时应该是个内存地址,而不是直接写你的字符串
c00der 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 binqray 的回复:]
区别:http://topic.csdn.net/u/20100609/20/e0b24c67-a392-4242-8676-0bd68cf6a0fb.html
[/Quote]

多谢!
c00der 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 pengzhixi 的回复:]
http://blog.csdn.net/xtlcq/archive/2008/11/26/3378042.aspx 看看下源码吧
[/Quote]
thx
c00der 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ayw215 的回复:]
引用 2 楼 c00der 的回复:

那么用空格分隔的话,如何取最后一个单词呢?

没研究过strtok的实现,原来他还要修改字符串。。。

完全可以自己解析啊
[/Quote]

嗯,既然必须放到一个数组里,肯定是以0结尾了,可以用空格和\0提取
  • 打赏
  • 举报
回复
区别:http://topic.csdn.net/u/20100609/20/e0b24c67-a392-4242-8676-0bd68cf6a0fb.html
pengzhixi 2010-07-30
  • 打赏
  • 举报
回复
ayw215 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 c00der 的回复:]

那么用空格分隔的话,如何取最后一个单词呢?

没研究过strtok的实现,原来他还要修改字符串。。。
[/Quote]
完全可以自己解析啊
c00der 2010-07-30
  • 打赏
  • 举报
回复
那么用空格分隔的话,如何取最后一个单词呢?

没研究过strtok的实现,原来他还要修改字符串。。。
ayw215 2010-07-30
  • 打赏
  • 举报
回复
char *strTest = "what is the difference"; //运行时错误
======
因为你要修改它啊,所以才报错
它是个常量,不能修改
strTest[]是个数组,可以修改,所以不会报错

69,381

社区成员

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

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