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;
}
更多推荐
c语言常用代码积累
发布评论