c语言常用代码积累

c语言已经上完了,自我感觉,要想学会c语言就要不停的敲,不停的敲代码,一个好的代码重复的敲,直到敲的和hello world一样熟悉,好多算法,好多解题思想我们想不到,但是,我们把前辈的东西敲会,敲熟,哪怕是敲的背下,最后掌握了这些解题的方法,能达到举一反三,那么这些方法就变成我们的东西了。
//把数字123转换为字符串"123"

#include <stdio.h>

int main ( void )
{
    int i=0;
    int j=0;
    int num=123045;
    char buf[24]={};

    do
    {
        buf[i++]=num%10+'0';    //数字转换为字符
        num /=10;               
    }while(num!=0);

    buf[i]=0;          //这里的0相当于'\0','\0'的ASCII值为0

    for (j=0;j<i/2;j++)             //交换字符串的前后位置
    {
        char tmp=buf[j];
        buf[j]=buf[i-1-j];
        buf[i-1-j]=tmp;
    }
    printf("%s\n",buf);

    return 0;
}
//循环求字符串的长度

#include <stdio.h>

int main ( void )
{
    int i = 0;
    char buf[1024] = {"mao mao chong"};

    for( i=0; buf[i] != 0; i++ )    // 0表示'\0'
        ;
    printf("len=%d\n",i);
    return 0;
}
//有8个人围成一个圈,从1数到3,数到3的人退出,直到一个人都没有了结束,并输入l数到3的人顺序

#include<stdio.h>

int main( void )
{
    int arr[8]={1,2,3,4,5,6,7,8};
    int i=0;      //数组下标
    int cnt=0;    //计数,
    int person=8;   //是否还有人,为了退出循环

    while (1)
    {
        if(arr[i]>0)        
        {
            cnt++;      //计数的时候不要包含arr[0]=0的人
        }
        if(cnt==3)
        {
            person--;
            printf("%d ",arr[i]);
            arr[i]=0;           //把退出去的人标记为0;
            cnt=0;
        }
        if(person==0)
        {
            break;
        }
        i++;
        i=i%8;
    }
    printf("\n");

    return 0;
}
//字符串的解析

#include <stdio.h>
#include <string.h>

int main(void)
{
    int age=0;
    int money=0;
    char buf[]="aobma|45|10000000|X|";
    char name[32]={};        //以下四个数组来存放解析后的字符串
    char tmp[1024]={};
    double sal[100]={};
    char hun[10]={};

    char* p=buf;
    char* q=strchr(p,'|');//strchr函数作用是在p指向的内容中查找字符’|'

    int i=0;
    while (p!=q)
    {
        name[i++]=*p;
        p++;
    }
    name[i]=0;          //0为'\0'
    printf("name=%s\n",name);

    q++;    //让q指向'|'的下一个字符,
    p=strchr(q,'|');    //让strchr在q中查找'|';
    i=0;
    while(q!=p)
    {
        tmp[i++]=*q;
        q++;
    }
    tmp[i]=0;

    i=0;
    while(tmp[i]!=0)
    {
        age=age*10+(tmp[i]-'0');
        i++;
    }
    printf("age=%d\n",age); 

    p++;
    q=strchr(p,'|');
    i=0;
    while(q!=p)
    {
       sal[i++]=*p;
       p++;
    }
    sal[i]=0;

    i=0;
    while(sal[i]!=0)
    {
        money=money*10+(sal[i]-'0');
        i++;
    }
    printf("money=%d\n",money);

    q++;
    p=strchr(q,'|');
    i=0;
    while(p!=q)
    {
       hun[i++]=*q;
       q++;
    }
    hun[i]=0;

    printf("hun=%s\n",hun);

    return 0;
}
//随机读取十个数字,从小到大排序

#include <stdio.h>

int main(void)
{
    srand(time(NULL));  //产生随机数种子。

    int i;
    int j;
    int a[10]={0};

    for(i=0;i<10;i++)
    {
        a[i]=rand()%100+1;
    }

    printf("before:");
    for(i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");

    for(i=0;i<10;i++)         //排序
    {
        for(j=i;j<10;j++)
        {
            if(a[i]>a[j])
            {
                int tmp = a[i];
                a[i]=a[j];
                a[j]=tmp;
            }
        }
    }
    printf("after:");
    for(i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");
    return 0;
}
//      在字符串中去掉空格符,打印出去掉空格符后的字符串

#include<stdio.h>

int main( void )
{
    int i;      //i为整体的循环
    int j;      //j为接受去掉空格的循环
    char b[]=" zhe shi ge maomaochong";

    for(i=0,j=0;b[i]!='\0';i++)
    {
        if(b[i]!=' ')
            b[j++]=b[i];
    }
    b[j]='\0';

    printf("%s",b);
    printf("\n");

    return 0;
}


  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值