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; } if(*p==*p1){ p2=p; while(*p1){ if(*p==*p1) i++; else break; p++; p1++; } } if(i==len){ *p2='\0'; break; } } strcat(s1,p); return 1; } main(){ char s[]="abcdefghijklm"; char s2[]="ghij"; puts(s); delchar(s,s2); puts(s); getch(); }~
#include
#include
int main(int argc, char *argv[])
{
int i,j,k=0;
char s1[80],s2[80],s3[80];
gets(s1);
gets(s2);
for(i=0;s1[i]!='\0';i++)
{
for(j=0;s2[j]!='\0';j++)
{
if(s1[i]==s2[j])//如果相等则代表匹配了字符,则退出内层循环,并且此时s2[j]!='\0'
break;
}
if(s2[j]=='\0') //如果s2[j]=='\0'则代码未发生匹配,则存入s3
s3[k++]=s1[i];
}
s3[k]='\0';//此处应用单个=,为赋值,设置字符串结束
puts(s3);
system("PAUSE");
return 0;
}
#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);
}
这样就对了,字符串数组的初始化错了。
重写吧,太多概念错了。
main 函数里:
s1 和 s2 都是 char 也就是字符,不能赋值成 s1[] 或 s2[]。
squeeze 里面就错更多了。
建议仔细看看书再写
错误太多了,你需要看一些基础的C语言知识
C语言求解:编写一个函数,判断一个数是不是素数。在主函数中完成输出1000...
是这个效果吗?如下:include <stdio.h> include <stdlib.h> include <math.h> int main(){ int i,sq,num=1,j;for(i=3;i<=1000;i++){ sq=sqrt(i);for(j=2;j<=sq;j++){ if(i%j==0)break;} if((sq+1)==j){ printf("%d ",i);num++;} if(num==10){ printf("\\n...
怎样用scanf函数计算圆柱表面积?
\/\/ 设圆半径r = 1.5,圆柱高h = 3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积 \/\/ 要求:用scanf输入数据,取小数点后两位 include <stdio.h> int main(){ float r,h;float c,s,sq,vq,vz;float pai = 3.1415926;printf("请输入圆半径:");scanf("%f",&r);printf("请输入...
在C语言中,一个函数一般由两个部分组成,它们是——和——
在C语言中一个函数一般由两个部分组成一个是函数头,一个是函数体。函数体是编程语言中定义一个函数功能的所有代码组成的整体。函数体是用花括号括起来的若干语句,他们完成了一个函数的具体功能。函数体内的前面是定义和说明部分,后面是语句部分。函数声明与函数体放在一起组成了函数定义。函数头是指函...
status initListSQ()返回什么?
Status InitList_Sq(SqList &L)status是返回值的类型, 其实一定在前面有typedef A status,status 就是A(A 为int,float,或你自己定义的类型)initlist_Sq 是函数名,还有括号里的为什么要加上sqlist。1、如果指针指向 static 变量,那么用这个函数的程序员牢牢记住“下次调用这个函数以后,上次的返回...
listinsert_sq函数的效率
listinsert_sq函数的效率很高。List-函数-Insert:insert 方法比较像 append,它允许你在列表中的任何位置插入一个新的项目,而不是只在最后一个位置。List-函数-Insert应用例子如下:words =[ "Python", "fun"]index = 1 words.insert(index, "is")print(words)结果:[ ' Python' , 'is', '...
编写一个函数,用于将十进制整数转换成十六进制,并输出,不可使用系统...
int Pop(SqStack *s, ElemType *y){ if (Empty(s)) return 0; \/* 栈空不能出栈 *\/ else { *y=s->elem[s->top]; s->top--; return 1; }\/* 栈顶元素存入*y,返回 *\/ } \/*进制转换*\/ void conversion(int N,int R){SqStack S;int x, int i;Init(&S);while...
数据结构实验,线性表的顺序存储结构的实现编写完成下列功能的函数:(1...
*sizeof(int)); if(!L.elem) exit(1); L.length=0; L.listsize=LIST_INIT_SIZE ; return 1;}void Create_Sq(SqList &L,int i){ for(int j=0,j100) j--; }}bool ListInsert_Sq(SqList &L, int i,
请程序员大师解决一下!!!
CreateAddressbook等几个函数都不应该用Sq类型作为入参,而应该用Sq *指针 建议搜索“函数 传值 传地址”,学习一下函数参数的用法。2. 局部变量的生存周期是函数结束,每次运行mainmenu,都是一个新的SQ,mainmenu结束,SQ内存就被释放了 3. 编译警告也需要处理,不要忽略。
C语言中,函数的首部一般由三个部分组成,它们是
返回值类型,如void,float,int,char等等。如果未写,则默认为int型。调用的函数名 括号内写上所传递的数据类型和用来接收数据的变量。如(float num1,int num2)且数据类型及数量与调用函数时一致 举例子:int sq(int a,int b);
有关c语言的函数调用问题
直接写compara LocateElem_Sq( L , e , compara )表示把第三个函数的入口地址传进去
敛永希尔: MATLAB是个半开源的软件,在命令窗口输入 type squeeze ,可以看到MATLAB中该函数的实现方法,然后自己写成C语言就可以了.掌握这种方法更重要.
含山县15634097439: 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() { ...
含山县15634097439: C语言中关于函数 squeeze(s, c)的疑问? - ?
敛永希尔: void squeeze(char s[], int c) { int i, j; for (i = j = 0; s[i] != '\0'; i++) if(s[i] != c) //应该是少个if关键字,否则编译会错误的 s[j++] = s[i]; s[j] = '\0'; }
含山县15634097439: 一道C语言题,求大神指正!错在哪里? - ?
敛永希尔: #include/* char squeeze(char s[],char s1[]) { char after[]; // 这是什么? char *p = s,*q = s1,*r = after; int count; for(p = s; *p ;p++) { for(count = 0,q = s1; *q ; q++) { if(*p == *q) count++; // == 不是 = } if(!count) *r++ = *p; } *r = '\0'; return after; } */ char *...
含山县15634097439: C语言编程squeeze函数,错误在哪里 - ?
敛永希尔: #include void Squeeze(char s[],char c) //此处修改,函数无返回值 { int i,j; for(i=0;s[i]=='\0';i++)//此处修改,是关系运算符,不是赋值运算符 { j=i; while (s[i]!=c) { s[i]=s[j++]; j++; } }//此处修改 } int main( ) { char s[50];//此处修改 char c; printf("输...
含山县15634097439: 用C语言写个 squeeze 完成将字符串 s1 中任何与字符串 s2 中匹配的字符都删除掉我自己写了个程序但是运行不 - ?
敛永希尔: void squeeze (char s1[], char s2[]) { int i, j, k; k = 0; for (i = 0; s1[i] != '\0'; i++) { j = 0; while (s2[j] != '\0' && s2[j] != s1[i]){ j++; if (s2[j] == '\0') { s1[k] = s1[i]; k++; } } } printf("i =%d \n",i); s1[k]='\0'; } 给你改了一下这个函数.你那个换行字符判断是不正确...
含山县15634097439: 求C语言一个有关字符串的库函数,功能是从字符串s1中删除字符串s2中的所有字符,s1包含s2 - ?
敛永希尔: #includevoid main() { char s_src[]="ab2c3degb 2 fh023"; char s_pattern[]="0123456789"; int i,j,k; printf("before: \'%s\',\'%s\'\n",s_src,s_pattern); for(i=0;s_src[i]!='\0';i++) for(j=0;s_pattern[j]!='\0';j++) { k=i; if(s_src[i]==s_pattern[j]) { for(k=i;s_...
含山县15634097439: 编写一个字符串整理函数void squeeze(char*s1,char*s2) - ?
敛永希尔: void squeeze(char *s1,char *s2){ char mark[256]; int i,j; memset(mark,0,256); for(i=0;s2[i];i++){ mark[s2[i]]=1; } for(i=j=0;s1[i];i++){ if(mark[s1[i]]==0){ s1[j++]=s1[i]; } } s1[j]='\0'; }
含山县15634097439: 请用C 语言编程将字符串中的字符C删除 - ?
敛永希尔: 程序如下 有几点要注意 按照你的题目的要求,只能删除大写的C,手动输入字符串#include <stdio.h>#include <string.h>//删除字符函数,参数分别是目标串和要删除的字符 void deleteC(char* str, char del) { int i = 0; int j = 0; char* ptr = str; while(ptr[...
含山县15634097439: c语言中“squeeze”是用来干什么的 - ?
敛永希尔: 图形操作类,如:拉伸 缩放.squeeze 是 “压缩”