您的位置:首页 > 其它

第7章 指针 第2题

2018-03-21 19:03 176 查看
题目:
设计一函数void deletechar(char *str1, const char *str2),在str1中删除str2中出现的字符。用递归和非递归两种方法实现。

代码:
1.非递归:#include <iostream>
using namespace std;

void deletechar(char *str1, const char *str2);

int main()
{
char s1[] = "aefghijorstz", s2[] = "acefhuwxz"; //字符串内容可更改

deletechar(s1, s2);

system("pause");
return 0;
}

void deletechar(char *str1, const char *str2)
{
unsigned int i, j;

cout << "字符串str1为:";
for (i = 0; i < strlen(str1); ++i)
{
cout << str1[i] << " ";
}
cout << endl << "字符串str2为:";
for (j = 0; j < strlen(str2); ++j)
{
cout << str2[j] << " ";
}
cout << endl;

for (i = 0; i < strlen(str1); ++i)
{
for (j = 0; j < strlen(str2); ++j)
{
if (str1[i] == str2[j])
{
str1[i]='0';
break;
}
}
}

cout << "在str1中删除str2中出现的字符后,str1为:";
for (i = 0; i < strlen(str1); ++i)
{
if (str1[i]!='0') cout << str1[i] << " ";
}
cout << endl << endl;
}2.递归:
好像递归不但没简化,反而更复杂了……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: