PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] 对字串的理解
楼主:
timmy999
(愤怒a阿宅)
2019-01-20 19:56:36
大一 有一题题目问道
输入一种语言的你好 并输出他是哪种语言
共有6种 其余输出UNKNOWN (一律使用大写)
输入 # 时跳出
http://codepad.org/23dYbAua
这是我的程式码 不管输入什么都是UNKNOWN
我目前的理解是 字串最后会以\0做结尾
然后怕有残值所以要用memset清空
请问我是对那里不够清楚造成我无法解题
可以的话请给我方向
作者:
Hurricaneger
(裤袜脱落大尉)
2019-01-20 20:10:00
break是啥意思?
作者:
crazycy
(LCY)
2019-01-20 20:13:00
C的字串(字符阵列)不能用==比较 请参见strcmp()
作者:
v86861062
(数字人:3)
2019-01-20 20:13:00
应该要用字串比较的函数吧 strcmp
作者: jerryh001
2019-01-20 20:16:00
字串清空第一格放\0就好 然后printf不用\0应该是\n换行
作者:
idiont
(supertroller)
2019-01-20 20:52:00
使用双引号包起来的字串都会自动加上\0 不用自己加scanf读进来的字串也会在结尾自动加上\0\0后面的内容不会有影响 所以也不必初始化char阵列
作者:
Neisseria
(Neisseria)
2019-01-20 21:11:00
https://pastebin.com/N3npZGy1
你要这个效果吗?
作者:
a1u1usul3
(Q-Max)
2019-01-20 21:18:00
strcmp相等的状态会回传0,造成他不会进入,要改成!strcmp()或者strcmp()==0
作者:
dces4212
(flawless)
2019-01-20 22:55:00
提醒一下 ==只能比较字符 假如比较字串应该是未定义行为 然后a == 这边的a是dereference出a[0]
作者:
idiont
(supertroller)
2019-01-21 00:05:00
a的值是&a[0] 然后双引号字串的值是字串的起始位置a是放在stack中 双引号字串放在data section 所以他们的值一定不一样
作者:
LPH66
(-6.2598534e+18f)
2019-01-21 08:40:00
基本观念: C 字串 = 以 \0 结束的字符阵列所以几乎所有操作都是以整个阵列为主那因为运算子对阵列没有定义, 故这些操作都不是使用运算子那既然是使用一系列函数来操作那就要仔细看函数的回传值strcmp 并不只比较等不等, 所以你需要把其结果和 0 比较另外不确定你们老师有没有教, 不过请学着用 debugger有些东西用 debugger 可以容易知道问题在什么地方
作者:
dces4212
(flawless)
2019-01-21 18:35:00
sor a不是dereference 说错了 a[0]才是
作者: jxzhe
2019-01-24 03:00:00
https://ideone.com/3ddCLo
继续阅读
[问题] overload 和 function matching 的问题
s06i06
[问题] Leet Code第17题网络解答的2个问题
Dong0129
[问题] 关于SERVICE CONTROL 的问题
jay70120
Re: [问题] 类别跟循环加不加分号的问题
SeamusBerloz
[问题] 类别跟循环加不加分号的问题
me8z7gnk
[问题] Multimedia Timer 超时的问题
licheer
[问题] 中央考题
ABoxOfChoco
[问题] 字串移除重复的字母 string使用问题
yoyo890121
[心得] relocation
descent
[问题] MFC程式非视窗类想要使用计时器!?
james999
Links
booklink
Contact Us: admin [ a t ] ucptt.com