64,654
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
#define MAX 100 //设定输入字符串的字符的最大数
int main()
{
char m[MAX]={}; //接收字符数组
char n[MAX]={};
int asc[255]={0};
int i;
printf("请输入两个字符串且都以'&'结尾\n");
gets(m); //获得字符串
gets(n);
//遍历第一个字符串将出现的字符相应的值设为1
for(i = 0;i < MAX;i++)
{
if(m[i] != '&')
{
asc[(int)m[i]] = 1;
}
else
{
break;
}
}
//遍历第二个字符串,将对应值为一的设为二
for(i = 0 ;i< MAX;i++)
{
if(n[i] != '&')
{
if( asc[(int)n[i]] == 1 )
asc[(int)n[i]] = 2;
}
else
{
break;
}
}
//输出同时出现的字符
for(i = 0 ; i< 255;i++)
{
if(asc[i] == 2)
{
printf("%c ",i);
}
}
return 0;
}
#include <iostream>
using namespace std;
char Arr[] = "jhagmcj&oskcakhbfcja";
int main()
{
for(char Ob = 'a'; Ob != '{'; ++Ob)
{
for(char* iter = Arr; *iter != '&'; ++iter)
if(*iter == Ob)
for(char* iter2 = Arr+sizeof(Arr)-1; *iter2 != '&'; --iter2)
if(*iter2 == Ob)
{
cout << Ob << " ";
goto A;
}
A: ;
}
system("PAUSE");
return 0;
} //输出 a c h j
void main()
{
set<char> c_set,t_set;
char ch,res[200];
cout<<"输入原始字符串,以&结束"<<endl;
while(cin>>ch)
{
if(ch!='&')
c_set.insert(ch);
else
break;
}
cout<<"输入匹配字符串,以&结束"<<endl;
while(cin>>ch)
{
if(ch!='&')
{
if(c_set.find(ch)!=c_set.end())
t_set.insert(ch);
}
else
break;
}
for(set<char>::iterator iter=t_set.begin();iter!=t_set.end();++iter)
cout<<*iter<<" ";
}
#include <iostream>
#define MAX 100
int main(void)
{
using namespace std;
char String1[MAX], String2[MAX];
cout << "String1: ";
cin.getline( String1, MAX );
String1[MAX - 2] = '&'; //防止输入的字符数量达到最大值导致最后的&被\0覆盖
cout << "String2: ";
cin.getline( String2, MAX );
String2[MAX - 2] = '&'; //防止输入的字符数量达到最大值导致最后的&被\0覆盖
int Result[26] = {0};
char *Pointer1 = String1, *Pointer2 = String2;
while( *Pointer1 != '&' )
{
if( !Result[*Pointer1 - 'a'] ) Result[*Pointer1 - 'a'] = 1;
++Pointer1;
}
while( *Pointer2 != '&' )
{
if( Result[*Pointer2 - 'a'] == 1 )
{
cout << *Pointer2 << " ";
Result[*Pointer2 - 'a'] = 2;
}
++Pointer2;
}
return 0;
}
#include <iostream>
#define MAX 100
int main(void)
{
using namespace std;
char String1[MAX], String2[MAX];
cout << "String1: ";
cin.getline( String1, MAX );
String1[MAX - 2] = '&'; //防止输入的字符数量达到最大值导致最后的&被\0覆盖
cout << "String2: ";
cin.getline( String2, MAX );
String2[MAX - 2] = '&'; //防止输入的字符数量达到最大值导致最后的&被\0覆盖
int Result[26] = {0};
char *Pointer1 = String1, *Pointer2 = String2;
while( *Pointer1 != '&' )
{
if( !Result[*Pointer1 - 'a'] ) Result[*Pointer1 - 'a'] = 1;
++Pointer1;
}
while( *Pointer2 != '&' )
{
if( Result[*Pointer2 - 'a'] ) Result[*Pointer2 - 'a'] = 2;
++Pointer2;
}
for( int i = 0; i < 26; ++i ) if( Result[i] == 2 ) cout << char( 'a' + i ) << " ";
return 0;
}