如何提取字符串的前X个字符并将其用于C语言中的另一个字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何提取字符串的前X个字符并将其用于C语言中的另一个字符相关的知识,希望对你有一定的参考价值。

我已经使用此功能来提取字符串的前两个字符:

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);
}

但是当我使用前两个字符为“ 50”(我正在使用的示例)的字符串运行它时,得到以下输出:

50r®B

老实说,我不知道为什么将三个额外的字符添加到结果字符串中。

答案

您缺少字符串的NUL终止符'\ 0',因此它将一直打印直到找到一个为止。像这样声明:

char  pre_salt[3]={0,0,0};

问题已解决。

以上是关于如何提取字符串的前X个字符并将其用于C语言中的另一个字符的主要内容,如果未能解决你的问题,请参考以下文章

C语言中如何截取字符串的前几个字符?

c语言,输入一个整数 k 和一个字符串 s(k < 字符串s的长度),输出从头开始的s的前k个字符?

c++怎么提取字符串的一部分

C语言中如何截取字符串的前几个字符?

c语言怎么删掉字符串的前几个字符

c语言编写一个程序,实现查找一个字符串中的特定字符,并将其删除.