我正试图使用printf函数从传入函数的指针打印字符串。

printf("%s\n", strng[1]);

strng由调用方传入。这是一个前面有空格的字符串,我想删除这个空格。所以我有下面的代码。
for(i=0; i<slength -1; i++) {
    printf("%s\n", strng[1]);
    tstr[i] = strng[i+1];
    printf("%s\n", tstr);
}
tstr[slength] = 0;

它一直给我一个访问违规错误,我不明白为什么。如果我取出printf行,那么我可以运行代码,但是返回字符串tstr的末尾总是有一个额外的字符。输出如下所示。
  bp185080
  9
 bªM
 bpM
 bp1
 bp18─
 bp185
 bp1850K
 bp18508
 bp185080=::=::\
 bp185080=

我该如何摆脱空白而不需要额外的字符?

最佳答案

你基本上是想用一个字符作为指针。用strng[1]&strng[1]替换strng + 1

09-27 20:58