传递和编辑字符串中的特定字符

时间:2012-12-09 02:30:55

标签: c

我正在尝试将内存引用传递给字符串中的字符,并使用C在函数中编辑它。代码如下:

void EditChar(char *input) {
printf("# %s #",*input);
*input = *input << 1
    }

int main() {
char *string ="aaaa";
EditChar(&string[2]);
printf("%s",string);
}

我可以在函数内打印字符,我认为它必须意味着它跟在指针之后,为什么我无法编辑该字符的指针位置,任何想法?

1 个答案:

答案 0 :(得分:0)

缺乏;第3行将引发问题。

你在第2行传递了一个字符而不是字符指针。

在我的Mac上,一旦你解决了这些问题,就会在第3行遇到总线错误,因为你正在尝试更改只读内存。

char * string = strdup(“aaaa”);

现在可行。

另外,正如问题评论中所述,您可能希望使用

而不是strdup

char string [] =“aaaa”;