如何提取字符串的前 X 个字符并将它们用于 C 中的另一个字符串
How to extract the first X characters of a string and use them into another in C
我制作了这个函数来提取字符串的前 2 个字符:
string get_salt(string hash)
{
char pre_salt[2];
for (int i = 0; i < 2; i++)
{
pre_salt[i] = hash[i];
}
string salt = pre_salt;
printf("%s\n", salt);
return(salt);
}
但是当我 运行 它的前 2 个字符为“50”(我正在使用的示例)时,我得到以下输出:
50r®B
老实说,我不知道为什么要在结果字符串中添加 3 个额外的字符。
您缺少字符串 NULL 终止符 '\0',所以它会一直打印直到找到一个。
声明如下:
char pre_salt[3]={0,0,0};
问题解决了。
我制作了这个函数来提取字符串的前 2 个字符:
string get_salt(string hash)
{
char pre_salt[2];
for (int i = 0; i < 2; i++)
{
pre_salt[i] = hash[i];
}
string salt = pre_salt;
printf("%s\n", salt);
return(salt);
}
但是当我 运行 它的前 2 个字符为“50”(我正在使用的示例)时,我得到以下输出:
50r®B
老实说,我不知道为什么要在结果字符串中添加 3 个额外的字符。
您缺少字符串 NULL 终止符 '\0',所以它会一直打印直到找到一个。 声明如下:
char pre_salt[3]={0,0,0};
问题解决了。