我在尝试从字符串中复制正确的点时遇到问题。这是我用来将字符从一个指针复制到另一个指针的循环。 string_ptr声明为char ** string_ptr
while (is_letter(**string_ptr) == 1) {
strncpy(word, *string_ptr, i);
*string_ptr += 1;
i++;
}
string_ptr连接到一个包含一个句子的变量,让我们说"快速的棕色狐狸跳了起来。"那不是一个数组。 is_letter只检查当前字符是否为字母,如果为true,则循环应该将该字母从句子复制到另一个名为word的字符指针(也不是数组)。当我运行循环时,这是我的输出......
word = "e "
然而我的输出应该是
word = "The"
看来我正在跳过句子中的前两个字符,我该如何修复这种错误?
答案 0 :(得分:0)
word =“e”
然而我的输出应该是
word =“The”
当然它是“e”因为你递增它:
*string_ptr += 1;
我建议:
for (i = 0; string_ptr[0][i] != '\0'; i++)
word[i] = string_ptr[0][i];
word[i] = '\0';