我希望得到一些帮助,反对完整的解决方案,我有一个想法,我需要知道在尝试实施时我做错了什么。
基本上我试图从C中的字符数组的末尾删除空格。
我有一个方法来计算字符串的长度并将其存储到int中。
我设置了一个指针指向我的角色数组的第一个元素。
然后我将指针设置为字符串的长度 - 1(以便不超过n-1的数组索引)。
如果这里的元素不是空格,那么我知道最后没有空格所以我只是将元素作为一个整体返回。
这就是我被困住的地方,现在在其他地方我知道它最后一定是空格字符' '
吗?如果不使用库函数,我该如何从字符串中删除此空格,并继续循环直到遇到不是' '
的字符?循环比特直到我遇到一个不是' '
(空格)的角色很容易 - 这只是一个证明是野兽的移除。
请不要完整的解决方案,因为这是家庭作业,我不想作弊。
答案 0 :(得分:9)
技巧是C中的字符串以NUL字符结束(值为零)。因此,您可以通过简单地用零值覆盖它来删除字符串末尾的字符。
答案 1 :(得分:6)
有两种方法
这取决于你需要做什么最好的方式。
答案 2 :(得分:0)
您可以通过在希望终止的位置插入'\ 0'来终止字符串。所以,你从最后开始,向后计数,直到找到一个空格以外的东西,然后向后退一个并放入'\ 0'。
答案 3 :(得分:0)
C中的字符串以空值终止。
答案 4 :(得分:0)
C中的字符串以'\ 0'字符终止。
如果你有一个字符指针
,那么......
*p = 'c'; and
*(p + 0) = 'c'; and
p[0] = 'c';
将所有写入'c'到
指向的字节。
继续这个主题......
*(p + 1) = 'c'; and
p[1] = 'c';
将“c”写入
指向的字节后的字节。
答案 5 :(得分:0)
你知道字符串的长度,所以只需从字符串的末尾开始并向后工作。每当遇到空格时,只需将其替换为空终止字符\ 0。