给定程序的功能是,将仅在字符串s
中出现而不在字符串t中出现的字符,和
仅在t中出现而不在字符串s中出现的字
符,构成一个新的字符串放在u中,u中
字符按原字符串中字符的顺序排列,不去
掉重复字符。
例如:当s="119345",t="
25484"时,u中的字符串应为"119328"
。#include<stdio.h>#include<
string.h>voidfun(chars[],
chart[],charu[])
{inti,j,sl,tl;
sl=strlen(s);tl=strlen(t)
;for(i=0;i<sl;i++){for(j=0;j<tl;j++)
if(s[i]==t[j])break;/***
*********found************/if
(j___1___tl)u[k++]=s[i];}for
(i=0;i<tl;i++){for(j=0;j<
sl;j++)
if(t[i]==s[j])break;/***
*********found************/if
(j___2___sl)u[k++]=t[i];
}/************found******
******/
___3___='\0';}voidmain()
{chars[100],t[100],u[100];
printf("\nPleaseenterstrings:
");scanf("%s",s);printf("\
nPleaseenterstringt:");scanf
("%s",t);
fun(s,t,u);
printf("Theresultis:%s\n"
,u);}
void fun(char s[],char t[],char u[]),这里s/t/u是形参。在函数定义或声明中输入的都是形参。
当函数被调用时,fun(s,t,u);放进去的是实参。
形参的意思就是只要类型确定即可,名字叫什么没有关系,比方void fun(char s[],char t[],char u[])这里,写成
void fun(char x[],char y[],char z[])也是一样的。形参的名字对函数功能没有影响。
但是,实参就是实际存在的参数,比如在本例的main函数中,fun(s,t,u),如果换成fun(x,y,z)就是错误的,因为x,y,z不存在,实际存在的是 char s[100],t[100],u[100].
如有帮助,请采纳一下,谢谢。