从c

时间:2018-02-05 16:17:47

标签: c pointers char

我在尝试从字符串中复制正确的点时遇到问题。这是我用来将字符从一个指针复制到另一个指针的循环。 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"

看来我正在跳过句子中的前两个字符,我该如何修复这种错误?

1 个答案:

答案 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';