苏嵌学习日志 2018.7.15

1、  请编写一个C函数将一个字符串逆序

#include <stdio.h>

#include <string.h>

#define N 50

 

Void strRev()

{

Char temp;

Char *end=s+strlen(s)-1;

While (end>s)

{

    temp=*s;

*s=*end;

*end=temp;

--end;

++s;

}

}

 

Int main()

{

Char s[N];

 

printf(“Please input a number!”);

fgets(s,N,stdin);

 

strRev(s);

 

printf(“The strRcv string!”);

puts(s);

 

return 0;

}

2、  请编写一个C函数,该函数可以实现将一个整数转换为任意二进制的字符串输出

#include <stdio.h>

 

int fun2 (int num);

int fun16(int num);

int fun8(int num);

 

int main ()

{

Int num,kind;

Printf(“Please input a number”)

Scanf(“%d”,&num);

Printf(“what kind of number do you want to change(2 or 8 or 16):\n”);

Scanf(“%d”,&kind);

 

if(kind==2)    

{

   fun2(num);

}

Else if (kind==16)

{

     fun16(num);

}

else if(kind==8)

{

    fun8(num);

}

else

{

   printf(“error!\n”);

}

 Return 0;

}

3、  输入一个字符串,计算字符串出现 次字数

#include <stdio.h>

#include <string.h>

 

Int main()

{

     Char a[100];

printf(“请输入一个字符串\n”);

scanf(“%s”,a);

 

char *c=a;

char b[10];

printf(“请输入子串\n”);

scanf(“%s”,b);

char *d=b;

int n;

int num=0;

n=strlen(d);

while(strlen(c)>0)

{

   if(strncmp(c,d,n)==0)

{

 

num++;

c+=n;

}

else

{

     c++;

}

}

printf(“%d\n”,num);

return 0;

}

4、  编写一个C函数将“I  am from  shanghai”倒置为“shanghai  from am  I ,即将句子中单词位置倒置,而不改变单词内部结构

#include <stdio.h>

#include <string.h>

 

Int main()

{

Char str[]=”I  am  from shanghai ”;

Puts(str);

Char tmp;

 

Char *p1=str;

Char *p2=str+strlen(str)+1;

 

While (p1<p2)

{

   tmp=*p1;

   *(p1++)=*p2;

    *(p2--)=tmp;

}

Char *p3=NULL;

P1=str;

P2=str;

 While(*p2)

{

   If(*p2==’’)

{

    p3=p2-1;

    while(p1<p3)

{

        tmp=*p1;

        *(p1++)=*p3;

*(p3--)=tmp;

}

p1=p2+1;

}

P2++;

}

P3=p2-1;

While (p1<p3)

{

    Tmp=*p1;

*(p1++)=*p3;

*(p3--)=tmp;

}

puts (str);

return 0;

}

 

5、  输入一个字符串,同时输入帧头和帧尾 (可以是 多个字符)将该字符中合法的帧识别出来(提示:帧头和帧尾分别是headtail字符串,如“asdheadhauboisoktail”中“headhauboisktail”是合法帧)

  #include <stdio.h>

  #include <string.h>

 

int main()

  {

Char s[100];

Char str1[100];

Char str2[100];

 

Printf(“Please input your string:\n”);

gets(s);

printf(“Please input the frame head:\n”);

gets(str1);

printf(“Please input the pin tail:\n”);

gets(str2);

 

char *p=s;

char *p1=str1;

char *p2=str2;

char *p3=NULL;

char *p4=NULL;

printf(“Legal frame in the string:\n”);

while(*p)

{

   If(strncmp(p,p1,strlen(str1))==0)

{

    Int j=p3-p+strlen(str2),I;

    P4=p;

    for(i=0;i<j;i++)

{

      printf(“%c”,*p4++);

}

puts(“\0”);

}

*p3++;

}

 

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值