63.在字符串中删除特定的字符。 题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”, 则删除之后的第一个字符串变成”Thy r stdnts.”。 分析:这是一道微软面试题。在微软的常见面试题中,与字符串相关的题目占了很大的一部 分,因为写程序操作字符串能很好的反映我们的编程基本功。
void main()
{
int len1,len2,i,j;
char str1[]="they are students.";
char str2[]="aeiou";
len1 = strlen(str1);
len2 = strlen(str2);
cout<<"len1="<<len1<<endl;
cout<<"len2="<<len2<<endl;
for(i =0;i<len1 ; i++)
{
for( j =0;j<len2;j++)
{
if(str1[i] == str2[j])
{
strcpy(&str1[i] ,&str1[i+1]);
}
}
}
str1[len1-len2] = '\0';
for(i =0;i<(len1-len2);i++)
{
printf("%c" , str1[i]);
}
}
或者删除
void main()
{
char str[]="my name is haiyang";
char str1[]="hai";//删除字符串里面所有的字符为hai的字符
int len = strlen(str);
int len1 = strlen(str);
int i , j;
for(i = 0 ; str[i] != '\0' ; i++)
{
for(j = 0;str1[j] != '\0' ;j++)
{
if(str[i] == str1[j])
{
strcpy(&str[i] , &str[i+1]);
}
}
}
for(i = 0 ;str[i] !='\0';i++)
{
printf("%c" , str[i]);
}
}
删除一个连续的字符串 例如
str1="my name is haiyang.";
str2 = "hai";
删除字符串2后的字符串1为 str1="my name is yang.";
void main()
{
char str1[]="my name is haiyang";
char str2[]="hai";
int i ,j;
j = 0;
for(i = 0; str1[i] != '\0' ; i++)
{
j =0;
if( str1[i] == str2[j] )
{
m = i;
while( (str1[m] == str2[j]) &&( str2[j] != '\0' ))
{
m++;
j++;
}
if(str2[j]=='\0')
{
strcpy( &str1[i] ,&str1[m] );
}
}
}
for(i = 0;str1[i] != '\0' ;i++)
{
printf("%c",str1[i]);
}
printf("\n");
}