使用sscanf从C中的字符串常量中读取单个字符

时间:2012-09-27 01:24:16

标签: c string c-strings

我正在尝试从传递给函数的字符串常量中读取单个字符并将它们放入数组中。我想要的最终结果是一个字符串数组,它与字符串常量相同。这是我的代码:

for(int i = 0; i < string_length; i++)
{
    sscanf(string, "%c", &array[i]);
}

当string是“string”时,我得到的是一个string_length大小的数组,每个值都是s。 有什么想法吗?

1 个答案:

答案 0 :(得分:4)

sscanf无法记住你的索引定位并自动增加指针。所以,实际上,每当你在循环中调用它时,它最终会读取第一个字符。

尝试以下

sscanf(string+i, "%c", &array[i]); 

附加说明: 您也可以使用strcpy或memcpy将字符串复制到字符数组中。我希望你有足够的理由为此使用sscanf。