我很难使用 strcat() 将 char 添加到 char 数组,我在下面尝试过
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char myStr[20] = "";
const char a = 'T';
const char b = 'H';
strcat(myStr, &a);
strcat(myStr, &b);
strcat(myStr, "\0");
cout << myStr;
return 0;
}
并期望看到输出“TH”,然而,实际输出是“THHTH”。
然后我尝试了下面的代码
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char myStr[20] = "";
const char a = 'T';
const char b = 'H';
strcat(myStr, &a);
strcat(myStr, &b);
// strcat(myStr, "\0");
cout << myStr <<'\0';
return 0;
}
输出变为“THH”。
我不明白为什么输出不是我所期望的——“TH”。
请提供任何帮助,我们将不胜感激。 预先感谢您。
感谢回答问题的人,非常有帮助。 就像 Peter 所说的那样,strcat() 要求两个参数都是 char 数组(也称为字符串)。我的代码最终可以与 strncat() 一起使用,如下所示。
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char myStr[20] = "";
char a = '\T';
char b = '\H';
strncat(myStr, &a, 1);
strncat(myStr, &b, 1);
cout << myStr;
return 0;
}
对于那些推荐 std::string 的人,这是我的第一个想法,但是,我在 Arduino 环境中工作,通常会担心堆碎片。这就是为什么我选择 char 数组来处理字符串。
谢谢大家。