c - 被 C 语法困住了

标签 c syntax pointers

我正在尝试删除字符数组(字符串)末尾的空格。

这是我正在做的伪代码,但它不断删除整个字符串:

if(string length - 1 != a space)
    return

否则,它必须等于一个空格,所以

while *mypointer-- != a space
//This should loop back to where there is a character.

在 while 循环之外,我现在通过执行以下操作向指针添加 1

mypointer ++;

然后设置 mypointer '\0' 以表示字符串结束。

我在这段时间里做了一些根本性错误的事情,但我似乎无法弄清楚。可能是什么?

最佳答案

有点洞察力:

while(*mypointer == a space) {
    --mypointer;
}
mypointer[1] = '\0';

注意它是 == 一个空格而不是 != 一个空格。

<小时/> 编辑: 如果我要写这个,我可能真的会使用类似的东西:

#include <string.h>
...

char *mypointer = strrchr(string, ' ');
if (mypointer) *mypointer = '\0';

关于c - 被 C 语法困住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2275631/

相关文章:

c - 如何在Linux中获取显示设备名称

c - 使用 pthread_mutex_lock 时遇到问题

scala - = 和 := in Scala? 之间有什么区别

c - 如何将值附加到转换为指针的结构中的 struct sembuf ?

c++ - 填充指针数组,退出时删除

c - 如何使用库从文件访问共享库中提到的指令的地址?

c - 生成文件说明

grails - 意外 token : mapping

javascript - JavaScript 中的 "?:"表示法是什么?

c - 指针赋值无效