我需要一个函数来在不使用任何索引的情况下从 C++ 中的 char 数组中删除某些字符
I need a function to delete certain characters from a char array in c++ without using any index
例如:
如果用户输入:
(23+22+43)
我希望函数完全执行以下操作:
for(int i =0; i <strlen(x);i ++)
{
if (x[i]=='+')
{
deletfunc(x[i]);
deletfunc(x[i+1]);
cout<<x;
}
}
所以输出将是(2323)
不使用索引 ----> 不知道数组中字符的确切数量,例如我不能说 deletefunc[3] ,我不知道 + 是第三个还是第四个还是第二个元素等等,+ 可能会重复多次。
如果有人可以帮助我,我已经尝试完成这个任务 4 天了
通常在使用 C 风格的字符串时,教师会说,“没有索引!”他们希望你使用指针。
这是您可以使用指针的一种方式
char * p = x; // point p at start of array x
while (*p) // loop until p points to the null terminator - the end of the string
{
if (*p=='+') // if value at p is +
{
deletfunc(p - x); // distance between p and x is index
if (*(p+1)) // make sure there is a p+1 to erase
{
deletfunc(p+1 - x);
}
}
p++; // advance pointer to next character in array x
}
cout << x; // print revised string
例如: 如果用户输入: (23+22+43)
我希望函数完全执行以下操作:
for(int i =0; i <strlen(x);i ++)
{
if (x[i]=='+')
{
deletfunc(x[i]);
deletfunc(x[i+1]);
cout<<x;
}
}
所以输出将是(2323)
不使用索引 ----> 不知道数组中字符的确切数量,例如我不能说 deletefunc[3] ,我不知道 + 是第三个还是第四个还是第二个元素等等,+ 可能会重复多次。
如果有人可以帮助我,我已经尝试完成这个任务 4 天了
通常在使用 C 风格的字符串时,教师会说,“没有索引!”他们希望你使用指针。
这是您可以使用指针的一种方式
char * p = x; // point p at start of array x
while (*p) // loop until p points to the null terminator - the end of the string
{
if (*p=='+') // if value at p is +
{
deletfunc(p - x); // distance between p and x is index
if (*(p+1)) // make sure there is a p+1 to erase
{
deletfunc(p+1 - x);
}
}
p++; // advance pointer to next character in array x
}
cout << x; // print revised string