我试图从C中的字符串中删除空格,而不是从结尾,也不是从头开始,只是字符串中的多个空格
例如
hello everyone this is a test
Run Code Online (Sandbox Code Playgroud)
你好和每个人之间有两个空格,其中有五个空格.最终我想要从5中删除2和4中的1个空格,因此每个间隙都有1个空格.合理?
这就是我要做的事情:
创建一个指针,将其指向元素1 char [0]的字符串.
在字符串的长度上执行for循环
然后我的逻辑是,如果我在[i]的指针是一个空格而我的指针在元素[i + 1]空间然后做某事
我不太清楚这里有什么好的解决方案,请记住我不会使用任何预先构建的功能.有没有人有任何想法?
基本上我想尝试开发一个基本的iPhone应用程序.我有2到3年的Java经验,现在正在学习C - 已经完成了指针内存管理等等,但非常简短.
目标C是否会偏离我迄今为止学到的C太多,所以它会像学习一门全新的语言一样?或者我应该能够使用到目前为止学到的东西?
此外,最好的IDE是做什么的,目前用于ci使用dev-c ++ - 我读到可以使用此ide中的目标c开发i手机应用程序但是想知道是否有更好的选择.Possiblly netbeans:D
我希望得到一些帮助,反对完整的解决方案,我有一个想法,我需要知道我在尝试实施时做错了什么.
基本上我试图从C中的字符数组的末尾删除空格.
我有一个方法来计算字符串的长度并将其存储到int中.
我设置了一个指针指向我的字符数组的第一个元素.
然后我将指针设置为字符串的长度 - 1(以便不超过n-1的数组索引).
如果这里的元素不是空格,那么我知道最后没有空格所以我只是将元素作为一个整体返回.
这就是我被困住的地方,现在在其他地方,我知道它一定是最后的空间角色' '吗?如果不使用库函数,我怎么能从字符串中删除这个空格,然后继续循环直到我遇到一个不是字符的字符' '?循环比特直到我遇到一个不是' '(空间)的角色很容易 - 它只是去除了证明一个野兽.
请不要完整的解决方案,因为这是家庭作业,我不想作弊.
好的,如果我们有一个char *hello- 并且字符串是"hello"
而我呢
char *ptr ;
ptr = hello;
Run Code Online (Sandbox Code Playgroud)
然后ptr会指着'h',对吗?
现在我刚刚完成了一个assignmnet并使用以下术语完成了它
如果我想将指针移动到下一个chatachter,我会这样做ptr++.如果我想使用指针的值进行一些检查,我会使用if(*ptr == '\0')...
当我在做assignmnets时,我们的老师给了我们一些预先构建的方法,他们使用了类似的东西
*string++ = *s++;
Run Code Online (Sandbox Code Playgroud)
好的,那么我们为什么要这样做*string(获得一个值) - 并将其与之结合起来++
我希望我能够解释一下不清楚的事情.它只是我管理ot用ptr ++做整个assignmnet移动到下一个元素或*ptr来检查它的值
谢谢
我的朋友说他认为我可能在我的程序中犯了一个错误,想看看我是否真的这么做了.他让我向他发送反对来源的二进制文件.因为我是新手,我是偏执狂,他正在做些什么呢?你能用二进制文件做什么,这意味着你不想要源代码?
谢谢
我试图从char数组(字符串)的末尾删除空格.
这是我正在做的伪代码,但它会一直删除整个字符串:
if(string length - 1 != a space)
return
Run Code Online (Sandbox Code Playgroud)
否则,它必须等于一个空格,所以
while *mypointer-- != a space
//This should loop back to where there is a character.
Run Code Online (Sandbox Code Playgroud)
在while循环之外,我现在通过执行向指针添加一个
mypointer ++;
Run Code Online (Sandbox Code Playgroud)
然后设置mypointer'\ 0'以表示字符串的结尾.
在我的内心,我正在做一些根本性的错误,但我似乎无法弄明白.会是什么呢?