我想修改一个字符数组(“1,204,342,544”)以最有效的方式删除所有逗号。我正在使用追逐指针的方法来解决这个问题。我用C++实现了这个解决方案,但是我的代码似乎失败了。我需要一些帮助来发现/纠正我的错误。另外请建议是否有更好的(更有效的方法)来实施相同的解决方案。追指针方法失败
我知道它在Python中非常简单!
arr = "1,234,34,54"
print arr.replace(',','')
在C++中使用追逐指针(高效的方式)
#include <iostream>
using namespace std;
char* removeCommas(char* arr) {
char *curr = arr; // pointer to current position
char *tail = arr; // tail pointer
while (curr) {
if (*curr != ',') {
if (curr != tail) {
*tail = *curr;
}
curr ++;
tail ++;
}
else {
curr ++;
}
}
*tail = '\0';
return arr;
}
int main() {
char arr[] = "1,204,342,544";
removeCommas(arr);
return 0;
}
谢谢!我有点粗心。你能建议其他有效的方法吗? – Shankar 2013-03-22 05:46:20
@ArunprasathShankar:见Alf的答案。或者luksy的。 – 2013-03-22 05:47:41