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、 输入一个字符串,同时输入帧头和帧尾 (可以是 多个字符)将该字符中合法的帧识别出来(提示:帧头和帧尾分别是head和tail字符串,如“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++;
}
}