字符串训练

//题目: 请编写一个C函数,该函数将一个字符串逆序
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void daozhi(char *s,int n)
{
char a[100];


int i=0,j=n;
a[n]=0;
for(i=0;i<n;i++)
a[i]=s[--j];
puts(a);


}


int main()
{
int n;
char s[100];
gets(s);
n=0;
puts(s);
n=stelen(s);
daozhi(s,n);
return 0;

}

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


#include<stdio.h>
void zz(int i,int n)
{
int r;
r=i%n;
if(i>=n)
zz(i/n,n);

putchar(r+48);
}




int main()
{
int i,n;
printf("shuru shuheyaozhuanhuandejinzhi:(douhaogekai)");
scanf("%d,%d",&i,&n);
zz(i,n);
return 0;
}

// 题目: 输入一个字符串,计算字符串中子串出现的次数
#include<stdio.h>
#include<string.h>
void zichuan(char *a,char *b)
{
int i,j,p1,p2,s=0;
p1=strlen(a);
p2=strlen(b);
for(i=0;a[i];)
{
j=0;
while(b[j++]==a[i++]&&a[i]&&b[j]);
if(b[j]==0)
s++;

}
printf("%d",s);
}


int main()
{
char a[100];
char b[50]="asd";
gets(a);
zichuan(a,b);
return 0;
}

////给出一百分制成绩,要求输出成绩等级‘A’、’B’、‘C’、‘D’、
//‘E’。90分以上为‘A’ ,80~89分为’B’ ,70~79分为‘C’...
#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    switch (n/10)
    {
        case 10:
  
case 9:
         {
    printf("A");
    break;

    
case 8 :
         {
    printf("B");
    break;

case 7:
         {
    printf("C");
    break;

case 6:
         {
    printf("D");
    break;

    default: printf("E");
             break;
    }
return 0;
}

//编写一个C函数,将"I am from shanghai "倒置为"shanghai from am I",
//及将句子中的单词位置倒置,而不改变单词内部结构.
#include<stdio.h>
#include<string.h>
void daozhi(char *a,int p)
{

char b[100][100];
int i,j=0,k=0,q;
for(i=0;a[i];i++)
{
k=0;
if(a[i]==' ')
{
continue;
}
if(a[i]==0)
break;
while(a[i]&&a[i]!=' ')
b[j][k++]=a[i++];

b[j++][k]=0;
}
// puts(b[0]);
for(i=j-1;i>=0;i--)
{
for(q=0;b[i][q];q++)
printf("%c",b[i][q]);
printf(" ");
}
printf("\n");
}
int main()
{
int i,p;
char a[100]="I am from shanghai   ";

p=strlen(a);
daozhi(a,p);
return 0;
}

//题目: 输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来.
//提示:帧头和帧尾分别是head和tail  字符串"asdheadhauboisoktail"中headhauboisoktail是合法帧
#include<stdio.h>
#include<string.h>
void hefa(char a[])
{
int i=0,j,k;
while(a[i])
{

if(a[i]=='h'&&a[i+1]=='e'&&a[i+2]=='a'&&a[i+3]=='d')
break;
i++;
}
j=i;
k=strlen(a)-1;
while(a[k])
{
if(a[k]=='l'&&a[k-1]=='i'&&a[k-2]=='a'&&a[k-3]=='t')
break;
k--;
}
printf("%d   %d\n",i,k);
if(i>k)
printf("没有");
else
{
for(j=i;j<=k;j++)
printf("%c",a[j]);
}
printf("\n");
}
int main()
{
char a[100];
gets(a);
hefa(a);
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值