2021-4-3C语言基础(7)数组的使用(2)以及puts,gets,strcat,strcpy和strlen的使用。

1:利用一维逆序输出

#include<stdio.h>
void main()
{int i,a[5],b[5];
for(i=0;i<5;i++)
	{scanf("%d",&a[i]);}
for(i=0;i<5;i++)
	{b[i]=a[4-i];	     //如果用原来的a数组到后面时前几个项的数字已经改变也就是说原来的数字已经不再
	printf("%2d",b[i]);	//无法给后面的赋值了 ,所以再使用一个数组,是原来的a数组不变
	}
}

2:利用一维数组选择法升序
每次筛选出最小的数字放在前面,第一次筛选十个,第二次筛选九个。。。。

#include<stdio.h>
void main()
{int N,i,m,min,a[10];
	N=10;
	printf("输入%d个需要排列的整数:\n",N);
	for(i=0;i<10;i++)
	{scanf("%d",&a[i]);}  //完成创建数组
	for(m=0;m<10;m++)
		{
		min=a[m];
		for(i=m;i<10;i++)
			{if(min>a[i])
				{min=a[i];
				a[i]=a[m];
				a[m]=min;
				}
			}			
		printf("%2d",a[m]);
		}
}

3:利用冒泡法对十个整数升序
两两交换把最大的数字放在最后;
每一轮都把大的数字往后移动

#include<stdio.h>
void main()
{int N,i,j,max,a[10];
	N=10;
	printf("输入%d个需要排列的整数:\n",N);
	for(i=0;i<10;i++)
	{scanf("%d",&a[i]);}  //完成创建数组
	
	for(i=0;i<=9;i++)
	
		{for(j=0;j<=9-i;j++)
		
			if(a[j]>a[j+1])	
				{
				max=a[j];
				a[j]=a[j+1];
				a[j+1]=max;		
				}
				
		printf("%2d",a[i]);
		}
}

4:puts和gets
首先这是字符串类型的方法头文件要导入<string.h>
puts把字符串以\0结束的字符序列输出(每个字符串最后都会有一个默认添加的"\0",只要字符串的空有空间最后都是\0收尾,其余位置不用\0本身也占一个字符串)
gets把字符串以\0结束的字符序列输入相当于取地址

#include<stdio.h>
#include<string.h>
void main()
{
	char str[100];
	printf("输入你想说的话:");

	gets(str);//输入内容

	puts(str);
		
}

5字符串连接:以最后的\0为拼接点
strcat()

#include<stdio.h>
#include<string.h>
void main()
{
	char str1[]={"hello"};
	char str2[]={"world"};
	strcat(str1,str2);//拼接并存放在str1
	strcat(str1,"!");//也可以自己添加一些字符
		puts(str1);
	//或者
	printf("%s",str1);
}

6:字符串的复制
数组名不能直接赋值,数组名是是地址
两个组名不能直接赋值
在复制的时候,复制到的那个数组必须足够大
复制是复制拼接是拼接,复制会删除 复制到的符串的原有内容,也就是说复制是把另一个字符串里的内容完全照搬,而不是拼接!

#include<stdio.h>
#include<string.h>
void main()
{
	char str1[]={"hello"};
	char str2[]={"world"};
	strcpy(str1,str2);
	strcat(str1,"!");
		puts(str1);
	//或者
	printf("%s",str1);
}

7:字符串测量长度

#include<stdio.h>
#include<string.h>
void main()
{	int m,n;
	char str1[]={"hello"};
	char str2[]={"world"};
	strcpy(str1,str2);
	strcat(str1,"!");
	m=strlen(str1);//第一种测量方式  当然也可以直接printf("%d",strlen(str1));
	n=strlen("and you");//第二种测量方式
	printf("%d\n%d\n",m,n);  
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值