冒泡算法和字符串问题
2016-12-16 本文已影响7人
Hassan_chao
一、冒泡排序
int arr[5]={1,2,3,4,5}
参加数据个数:n,比较次数n-1,得到最值n
arr[0] arr[1]----->arr[1];
arr[1] arr[2]----->arr[2];
arr[2] arr[3]----->arr[3];
arr[3] arr[4]----->arr[4];
arr[4] arr[5]----->arr[5];
..... ..... ...... .....
arr[n-1] arr[n]----->arr[n];
第二次比较个数:n-1 比较次数n-2 得到次值
arr[1] arr[2]----->arr[2];
arr[2] arr[3]----->arr[3];
arr[3] arr[4]----->arr[4];
arr[4] arr[5]----->arr[5];
..... ..... ...... .....
arr[n-2] arr[n-1]----->arr[n-1];```
。。。
。。。
。。。
第n-1次比较,参与个数2 比较次数1 得到最终结果
```arr[0] arr[1]----->arr[1];```
###2、获取随机数
//获取0~100之间的随机数
srand(time(NULL));//此语句不能放在循环语句中,否则会产生相同的数据
int max =rand()%100;
###3、字符串
(1)字符串常量
字符串是由""括起来的字符串集合
"a","hh","ajfljwi3958&"
字符串的结束标志'\n',不显示,但是存在。
(2)C中没有字符串所对应的数据类型,通常使用字符数组保存字符串
``` char arr[32]={"hello,uuhhio"};
char buf[32]="lkajfeihfaoon 45";
char af[32]={ 'a','r','$','*','8'};```
注意:字符数组保存字符和保存字符串的区别;
字符串有'\0'
(3)字符串的输入和输出
scanf()//遇到空格,回车,tab键,按结束处理,单个空格可以接收,
printf()```
(3)
getchar();//吸收单个字符
char ah;
ah=getchar();
getchar();
(4)
gets()/put()
get():从键盘输入,可以接收空格,此函数有bug,不建议使用
put():自动换行,无需换行符
(5) fget()/fput()
fgets():获得数据
arr:数组名,即一个地址
fgets(arr,sizeof(arr),stdin);
stdin:标准输入
sizeof(arr):读取数据大小,也可以用数字代替
fputs():输出数据,并自动换行
fputs(arr,stdout);
stdout:标准输出
arr:要输出的字符串
注意:此处无BUG,可以放心使用
(6)指针和字符串
char
(7)字符串相关函数
头文件:#include<string.h>
strlen():计算字符串长度,‘\0’不计入字符串长度,注意区分和sizeof的区别
strcpy():字符串拷贝,
strcpy(buf,arr);将arr内容拷贝到buf中
strcmp():字符串比较
int ret=strcmp(arr,buf)
若ret=0;则两个字符串相等
若ret>0;则arr>buf
若ret>0;则arr<buf
注:不需要知道返回值的具体值!!!
strcat():字符串拼接
strcat():字符串的拼接
strcat(arr,buf);
将buf的内容,拼接到arr中,一定要保证arr的空间足够大!!否则会出现数组越界问题!
总结:今天讲解的新内容,没有什么疑问,bug还是出现在指针数组上,正在修复中。。。。