c++中,输入两个字符串,怎样在第二个串中查找并删除第一个串,并且是不区分大小写的查找?

可不可以不用一个字符一个字符的比较?可能字符串中还含有数字,一个字符一个字符比较会很麻烦吧?还不能用stricmp匹配,求高手指导!... 可不可以不用一个字符一个字符的比较?可能字符串中还含有数字,一个字符一个字符比较会很麻烦吧?
还不能用stricmp匹配,求高手指导!
展开
 我来答
luxer1236e70
2012-02-16 · TA获得超过1610个赞
知道小有建树答主
回答量:270
采纳率:100%
帮助的人:128万
展开全部
#include <stdio>
/////// 字符串匹配,在主串中删除子串
int main()
{
int length_str( char *str);//声明子函数

char str1[512]={0}, str2[512]={0};
scanf("%s", str1);//主串
scanf("%s", str2);//子串

int len1 = length_str(str1);
int len2 = length_str(str2);
int count = 0; //匹配次数
int index[10]={0}; //子串在主串中的起始匹配位置

for (int i=0; i< len1-len2+1; i++) //计算匹配信息
{
int k=0;//子串内匹配次数

for (int j=0; j<len2; j++)
{
if ( str1[i+j] == str2[j] )
{
k++;
}
if (k==len2)
{
count++;
index[count-1] = i;
}

}
}

for (; count>0; count--) //根据匹配信息从主串删除子串
{
for (int m = index[count-1]; m<= len1-1-len2; m++)
{
str1[ m ] = str1[ m + len2 ];
}
len1 -= len2;
}

str1[len1] = '\0';

printf("Result: %s", str1);

return 0;
}

//////求字符串长度
int length_str( char *str)
{
int len = 0;
while( *str != '\0')
{
len++;
str++;
}
return len;
}
xouxoux
2012-02-15 · TA获得超过238个赞
知道答主
回答量:183
采纳率:0%
帮助的人:98.2万
展开全部
同意楼上,必须要一个一个比较硬两个都是字符串,字符串比较就必须完全匹配当然要一个一个比较咯
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wgbishuiliuyun
2012-02-15 · 超过10用户采纳过TA的回答
知道答主
回答量:23
采纳率:0%
帮助的人:26.9万
展开全部
建议使用KMP串匹配算法。
追问
有没有简单点的,这个是研究生复试上机题目,应该不会太高深。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式