如何访问char**字符串中的下一个元素



我想将下面的字符数组传递给一个函数,并在那里使用它。我想按原样逐个打印每个字符串,但我唯一可以访问的字符是这个字符串的第一个字符。我想*string++会给我下一个元素的地址,从而给我下个字符。

char* string[] = {
"Garbage,",
"",
"Garbage garbage",
"Garbage garbage Garbage garbage",
"Garbage Garbage Garbage Garbage Garbage ",
"Garbage Garbage Garbage ",
"Garbage Garbage ",
"",
"Garbage ,",
"Garbage "
};

我就是这么想的。那么我在这里做错了什么呢?

while(**string != ''){
if(**string == 'n'){
printf("n");
}
printf("%cn", **string);
*string = *(string + 1);
}

string是一个数组。它本身不是一个可修改的左值。(纯粹的火焰喷射器投入使用(。

您可以使用类似于*id++的语法,但必须使用适当类型的指针遍历数组才能执行此操作

示例

#include <stdio.h>
int main()
{
const char *string[] =
{
"Garbage,",
"Garbage garbage",
"Garbage garbage Garbage garbage",
"Garbage Garbage Garbage Garbage Garbage ",
"Garbage Garbage Garbage ",
"Garbage Garbage ",
"",
"Garbage ,",
"Garbage "
};
// one way to walk with a pointer.
const char * const *str = string;
while (**str)
puts(*str++);
}

输出

Garbage,
Garbage garbage
Garbage garbage Garbage garbage
Garbage Garbage Garbage Garbage Garbage 
Garbage Garbage Garbage 
Garbage Garbage

相关内容

最新更新