有 字符串 A 、 字符串 B ,假如 B 中 和 A 中 有相同的部分,大家知道
如果 直接 A+B,那么 A,B 中相同的部分 在 新的结果中 有 两个相同的子串,我想只保留一个子串,去掉一个子串,请问该如何处理谢谢
解决方案 »
- Skinmagic怎么样使多文档的子窗口换肤?
- 直接读取时乱码,保存为文本文档读取正确,这个怎么解决,比较急
- VC中有没有直接将浮点数据直接转化成科学计数法的函数?
- 讨论 QQGame游戏大厅主界面是由哪些窗口组成的
- 东南大学的XDJM留下MSN~~~~~~~~~~~~~~~~~~~
- 怎么样判断sock是否在connect状态?
- CSocket::Create 在NT服务中该怎么调用
- 关于帮助文档在vc中的调用问题。(很急!!!,高人帮帮忙)
- 如何通过双击文件打开自己定制的文件??
- Wininet API提供的ftp函数支持断点续传吗??
- 最新版.net下载
- 用CListView做基类碰到的问题?希望能够得到帮助(100分)在线等
假如A='abc';B='bcd';
你想要A+B='abcd';
if (char in string B) { }
}
if (char in string B) {
delete char from A;
}
}
Zhymax(蓝点) ( ) : 我想这个应该 完成不了的,是相同字符串,而不是字符
#include <stdlib.h>
#include <stdio.h>
#include <search.h>
#include <string.h>
/* initialize number of colors */
#define NELEMS(arr) (sizeof(arr) / sizeof(arr[0]))char A[100];
char B[10] ;int nums ;int numeric (const int *p1, const int *p2)
{
return(*p1 - *p2);
}
int addelem(int *key)
{
int oldn = nums;
_lsearch(key, A,(size_t *)&nums , sizeof(int),
(int(*)(const void *,const void *))numeric);
return(nums == oldn);}int main(void)
{
int i;
int key ; strcpy((char *)A,"abcdef");
strcpy((char *)B,"abcgh");
nums=strlen(A);
for(i=0;i<strlen(B);i++)
{
key=B[i];
if (addelem(&key))
printf("%c already in A table\n", key);
else
{
printf("%c added to A table\n", key);
}
}
A[nums]=0;
printf("The A:\n");
printf("%s\n",A);
return 0;
}
int numeric (const char *p1, const char *p2)
{
return(*p1 - *p2);
}
int addelem(int *key)
{
int oldn = nums;
_lsearch(key, A,(size_t *)&nums , sizeof(char),
(int(*)(const void *,const void *))numeric);
return(nums == oldn);}
//OK
char* bb=b;while( aa!=a && *bb != NULL && *aa == *bb ) {aa--; bb++;}
strcpy( a+strlen(a), b );
a="abctuj";
b="bcdj";
结果为:abctujbcdj
正确的结果为:abctujd
其实,C/C++有很多标准函数,特别是字串或数据处理功能,用它就可以了