C语言两道练习题

编写一个函数:void Func(char *strl,char *str2,char *str3),根据两个已知的字符串s1和s2生成新的字符串,新字符串的内容由s1中有而s2中没有的字符组成。编写一个主函数对函数Func()进行测试。

#include <stdio.h>  
#include <string.h>  
  
void Func(char* str1,char* str2,char* str3)  
{  
    int i,j,k=0;  
    for(i=0;i<strlen(str1);i++)  
    {  
        for(j=0;j<strlen(str2);j++)  
        {  
            if(str1[i]==str2[j])  
            break;  
        }     
        if(j==strlen(str2))  
        {  
            str3[k]=str1[i];  
            k++;  
        }  
        str3[k]='\0';  
    }  
}  
int main()  
{  
    char *str11="yangluoning";  
    char *str22="ylnddd";  
    char str33[100];  
    Func(str11,str22,str33);  
    printf("%s",str33);  
}  

 

编写一个函数:CopyChar(char a[],char b[]),将字符数组a中的数字字符存到数组b中。

#include <stdio.h>  
void copychar(char a[],char b[])  
{  
 int i=0,j=0;  
 while(a[i]!='\0')  
 {  
   if((a[i]>='0')&&(a[i]<='9'))  
   {  
    b[j]=a[i];  
    j++;  
   }  
    i++;  
  }  
//for(i=0;i<j;i++)//这两句用来测试  
 //printf("%c",b[i]);  
  
   
}  
   
int main()  
{  
 char a[]="da1k2l4cs5";  
 char b[100];  
 copychar(a,b);  
}   

 

有人这样写可能更好吧:

#include<stdio.h>  
#include<ctype.h>  
void CopyChar(char a[],char b[])  
{  
int i,j=0;  
for(i=0;a[i]!='\0';i++)  
{  
if(isdigit(a[i]))  
b[j++]=a[i];  
}  
b[j]='\0';  
}  
int main()  
{  
char a[100],b[100];  
gets(a);  
CopyChar(a,b);  
puts(b);  
return 0;  
}  

 

永不止步步 发表于12-15 10:23 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:381641个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号