練習 2-4 squeeze(s1, s2),將字串 s1 中任何與字串 s2 中字元匹配的字元 都刪除
阿新 • • 發佈:2018-12-24
#include <stdio.h>
#define MAXLINE 1000
void squeeze(char s1[],char s2[]);
int getlines(char s[],int lim);
int main(void)
{
int len;
char s1[MAXLINE];
char s2[MAXLINE];
printf("Please enter first string:\n");
while((len = getlines(s1,MAXLINE)) > 0)
{
printf("please enter second string:\n");
if((len = getlines(s2,MAXLINE))){
squeeze(s1,s2);
printf("First string delet temp:\n%s\n",s1);
printf("Whether to continue?(Enter quit)\n");
}
}
printf("Good luck!\n");
return 0;
}
int getlines(char s[],int lim)
{
int i,c;
for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
s[i] = c;
s[i] = '\0';
return i;
}
void squeeze(char s1[],char s2[])
{
int i,j,k;
for(i = 0; s1[i] != '\0'; ++i)
for(j = 0; s2[j] != '\0'; ++j){
if(s1[i] == ' ')
continue;
if(s1[i] == s2[j])
{
for(k = i;s1[k] != '\0';++k)
s1[k] = s1[k+1];
--i;
break;
}
}
}
#define MAXLINE 1000
void squeeze(char s1[],char s2[]);
int getlines(char s[],int lim);
int main(void)
{
int len;
char s1[MAXLINE];
char s2[MAXLINE];
printf("Please enter first string:\n");
while((len = getlines(s1,MAXLINE)) > 0)
{
printf("please enter second string:\n");
if((len = getlines(s2,MAXLINE))){
squeeze(s1,s2);
printf("First string delet temp:\n%s\n",s1);
printf("Whether to continue?(Enter quit)\n");
}
}
printf("Good luck!\n");
return 0;
}
int getlines(char s[],int lim)
{
int i,c;
for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
s[i] = c;
s[i] = '\0';
return i;
}
void squeeze(char s1[],char s2[])
{
int i,j,k;
for(i = 0; s1[i] != '\0'; ++i)
for(j = 0; s2[j] != '\0'; ++j){
if(s1[i] == ' ')
continue;
if(s1[i] == s2[j])
{
for(k = i;s1[k] != '\0';++k)
s1[k] = s1[k+1];
--i;
break;
}
}
}