C语言,编写函数squeeze(s1,s2),将字符串s1中任何与字符串s2中匹配的字符都删除.编译通过了,没有打印结果?

#include <stdio.h>
#include <stdlib.h>

void squeeze(char s1[],char s2[])
{
int i,j,k;
for (i=k=0;s1[i]!='\0';i++)
{
for(j=0;s2[j]!='\0'&&s2[j]!=s1[i];j++)
;
if (s2[j]=='\0')
s1[k++]=s1[i];
}
s1[k]='\0';
printf("s1中去除与s2相同的符号后剩下的是%s\n",s1);
}
main()
{
char s1,s2;
s1="hello world!";
s2="how are you?";
void squeeze(char s1[],char s2[]);
}

#include <stdio.h>
#include <stdlib.h>

void squeeze(char s1[],char s2[])
{
int i,j,k;
for (i=k=0;s1[i]!='\0';i++)
{
for(j=0;s2[j]!='\0'&&s2[j]!=s1[i];j++)
;
if (s2[j]=='\0')
s1[k++]=s1[i];
}
s1[k]='\0';
printf("s1中去除与s2相同的符号后剩下的是%s\n",s1);
}
main()
{

char s1[20]="hello world!";
char s2[20]="how are you?";
squeeze(s1,s2);
}
这样就对了,字符串数组的初始化错了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-21
重写吧,太多概念错了。
main 函数里:
s1 和 s2 都是 char 也就是字符,不能赋值成 s1[] 或 s2[]。
squeeze 里面就错更多了。

建议仔细看看书再写
第2个回答  2014-01-21
错误太多了,你需要看一些基础的C语言知识

squeeze(s1, s2),将字符串s1 中任何与字符串s2 中字符匹配的字符 都...
include <stdio.h> include <string.h> void squeeze(char s[], char t[]) { char *p,*q,*e;for(p = s; *p; ++p) { e = p;for(q = t; *q; ++q) { if(*p == *q) { while(*e = *(e + 1)) ++e;--p;} } } } int main(void) { char leftstr[][30] = ...

C语言,编写一个函数squeeze(s1,s2),能从字符串s1中删去所有与字符串s2...
这是运用指针写的.可能你看不懂,但你可以把它收到你的函数库中,随时调用. int delchar(char *s1,char *s2){ int i=0,len,flag=0; char *p,*p1,*p2; len=strlen(s2); if(strlen(s1)<len) return 0; p=s1; p1=s2; while(*p){ i=0; if(*p!=*p1){ p++; flag=0; continue...

c++题目,编写一个字符串整理函数void squeeze(char*s1,char*s2)
void squeeze(char *s1, char *s2){ int i,j,k;char temp;k=0;while(s2[k]!='\\0'){ temp=s2[k];for(i=j=0;s1[i]!='\\0';i++){if(s1[i]!=temp)s1[j++]=s1[i];} s1[j]='\\0';k+=1;} }

C语言编程高手请来解决几道tc程序题
其中: 字符'a'出现的次数存放到b[0]中,字符'b'出现的次数存放到b[1]中,字符'c'出现的次数存放到b[2]中,字符'd'出现的次数存放到b[3]中,字符'e'出现的次数存放到b[4]中,其它字符出现的次数存到b[5]中。 例如, 当a中的字符串为: "bacd1b+ddep",调用该函数后,b中存放数据应是:1、2、1、3...

如何用PyTorch实现递归神经网络
Tracker 在给定当前句子上下文状态、缓冲区中的顶部条目 b 和堆栈中前两个条目 s1\\s2 时,在堆栈操作的每个步骤(即,读取每个单词或闭括号)后生成一个新状态:context[t+1] = Tracker(context[t], b, s1, s2)容易设想用你最喜欢的编程语言来编写代码做这些事情。对于要处理的每个句子,它将从缓冲区加载下一个...

求高手解答一些简单的C语言题目!(高分悬赏)
} } printf("数组的最小值:%.2f\\n数组的最大值%.2f\\n",s[min],s[max]);} main(){ int i;float s[10];printf("求数组中最小最小值\\n\\n");printf("请输入10个数:\\n");for(i=0;i<10;i++)scanf("%f",&s[i]);GetMaxMin(s);...

相似回答