c - 双指针运算,遍历数组字符串的字符

标签 c arrays string pointers traversal

请帮助我理解我的双指针算法做错了什么。我知道我显然做错了什么但是什么?查看我标记为“错误指针”的行。我的直觉告诉我这应该可行,但我想不行。用 C 编程。

/*
 *This function searches for prefixes within the string array.
 *@param stringArray array containing strings
 *@param searchPrefix a string or characters to search for at beginning of string
 *@return void
 */
 void prefixSearch(char* stringArray[SIZE], char* searchPrefix){
int count = strlength(searchPrefix);//size of the prefix search
while(count > 0){
    if(**stringArray == *searchPrefix){
        printf("%c match %c\n", **stringArray, *searchPrefix);
        **stringArray++;//want to move to next character, instead get bad pointer.
        *searchPrefix++;//moves to next char
    }else{
        stringArray++;//no match, go to next string
    }
    count--;//decrement
}

最佳答案

*++ 运算符具有相同的优先级和从右到左的关联性,因此不起作用的行解析如下:

*(*(stringArray++));

我实际上并不理解您的代码,但这不可能是您想要的,因为取消引用运算符没有效果。大概你想要这个:

(**stringArray)++;

关于c - 双指针运算,遍历数组字符串的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13373050/

相关文章:

C - 将变量与 sizeof(int) 进行比较

python - numpy.unique 没有给出预期的输出

JAVA - 用 2 个分隔符分割字符串

java - 通过每次出现时最后一个分隔符的存在将字符串拆分为数组的惯用方法

c - 为什么这个运算等于1?

c - scanf 格式化字符串

c - C语言合并双链表

arrays - 从数组中的数组返回 TableView 中某个部分的行数

java - 类平均方法和数组

python - 格式的正确布局