【发布时间】:2021-06-23 00:04:44
【问题描述】:
我正在编写一个 c++ 脚本,它使用 strcmp() 一个一个地比较两个字符串的字符。 我写了这段代码:
char test1[1];
char test2[1];
test1[0]=str1[i]; //str1 is a char array
test2[0]=str2[i]; //str2 is a char array
int result=strcmp(test1,test2);
但如果我打印 test1 或 test2 我会遇到两个字符。 例如,如果 str1='a' 的第一个索引那么 test1 是“aa”,但我不知道为什么? 请帮忙。
【问题讨论】:
-
strcmp()需要一个 C 风格的以空字符结尾的字符串。test1[1]没有空间容纳角色和终结者。 -
strcmp用于比较 NUL 终止的 C 字符串而不是单个字符。要比较字符,只需使用==就像str1[i] == str2[i]