【项目2-用指针玩字符串】神奇的指针哟,指向整型的指针int *p1,可以操作整型数组int a[];指向字符型的指针char *p2,可以操作字符数组(字符串)char str[];指向指针的指针可以操作二维数组。更灵活的是,在函数的传递中,指针、数组名在一定程度上可以互换。

  本项目试图通过编制操作字符串的函数,实现字符串的操作。

  请编制函数,其功能是对字符串的进行操作

2、

功能:去除字符串str中的特定字符c(如空格),结果仍保存到原字符串中

用数组名作形参:void adelchar(char str[], const char c)

用指针作形参:void pdelchar(char *str, const char c)


参考解答:

//2. 去除字符串str中的特定字符c(如空格),结果仍保存到原字符串中
#include <iostream>
#include <string>
using namespace std;
void adelchar(char str[], const char c);
void pdelchar(char *str, const char c);
int main(void)
{
char s[50]="Hello world. ";
adelchar(s,'o');
cout<<"\""<<s<<"\"去除 o 后,字符串为:"<<s<<endl; //这个输出有瑕疵,见评论,感谢greenbrowser12
strcpy(s, "my name is tom.");
adelchar(s,'m');
cout<<"\""<<s<<"\" 去除 m 后 ,字符串为:"<<s<<endl;
return 0;
}


void adelchar(char str[], const char c)
{
int i=0,j;
for(j=0;str[j]!='\0';j++)
{
if(str[j]!=c)
str[i++]=str[j];
}
str[i]='\0';
return;
}

void pdelchar(char *str, const char c)
{
char *p=str,*q=str;
for(;*q!='\0';q++)
{
if(*q!=c)
*p++=*q;
}
*p='\0';
return;
}