1**字符串是特殊的字符数组,字符串都是以/0结束的,系统会在字符串的结尾自动补上/0
2..冒泡排序: n - 1 趟, 其中for循环里, 外层的- 1 与内层的- i目的是提高程序的运行效率,可以不写; 但是内层的-1目的是为了防止数据越界,必须要写.
3..sizeof() 计算数组元素
4..
int str[10]={0};
for (int i = 0; i < 10; i++) {
str[i] = arc4random()%21 + 20;
printf("%d " ,str[i]);
}
for (int i = 0; i < 10 - 1; i++) {
for (int j = 0; j < 10 - 1 - i; j++) {
// str[j + 1] = str[j] > str[j + 1] ? str[j] : str[j + 1];
if (str[j] > str[j + 1]) {//这里是判断如果前者大于后者,那么二者交换位置, 通过多次交换, 将大数移至后面,小数移至前面...不可以用三目运算符,它达不到交换的作用
int temp = str[j];
str[j] = str[j + 1];
str[j + 1] = temp;
}
}
}
printf("\n");
for (int i = 0; i < 10; i++) {
printf("%d ", str[i]);
for (int i = 0; i < 10; i++) {
str[i] = arc4random()%21 + 20;
printf("%d " ,str[i]);
}
for (int i = 0; i < 10 - 1; i++) {
for (int j = 0; j < 10 - 1 - i; j++) {
// str[j + 1] = str[j] > str[j + 1] ? str[j] : str[j + 1];
if (str[j] > str[j + 1]) {//这里是判断如果前者大于后者,那么二者交换位置, 通过多次交换, 将大数移至后面,小数移至前面...不可以用三目运算符,它达不到交换的作用
int temp = str[j];
str[j] = str[j + 1];
str[j + 1] = temp;
}
}
}
printf("\n");
for (int i = 0; i < 10; i++) {
printf("%d ", str[i]);
}
4..“%u”,无符号长整型
5..char str[]=“iphone”, 长度为6, 所占空间为7, 在e的后面有一个隐藏的/0作为结尾.
**字符串操作函数,只能操作字符串.
unsigned long lenth = strlen(str);
数组名
printf(“%lu”, lenth) 注意输出用 %lu
const 关键字的作用:修饰的变量不可修改
strcmp(str[1], str[2]), 如果结果 > 0, 则说明str[1]的长度大于str[2].
strlen 和sizeof的区别..
char str[10]=“iphone”
strlen(str) = 6
sizeof(str) = 10
//strcpy(字符串1, 源字符串) 字符串拷贝, 将字源字符串的内容拷贝给字符串1. 给源字符串加const修饰的原因是防止源字符串被修改,造成数据错误.
//要求:进行字符串拷贝的时候,源字符串的长度要小于或者等于目的字符串的长度.
//如果目的串的长度大于源字符串,拷贝完成后剩余的部分仍然留在内存中,不会被清零.
char str1[] = "Hello123";
char str2[] = "World";
strcpy(str1, str2);
//要求:进行字符串拷贝的时候,源字符串的长度要小于或者等于目的字符串的长度.
//如果目的串的长度大于源字符串,拷贝完成后剩余的部分仍然留在内存中,不会被清零.
char str1[] = "Hello123";
char str2[] = "World";
strcpy(str1, str2);
printf("%c",str1[5]);// "%s"遇到\0就停止
//strcat 字符串拼接
//进行字符串拼接时, 要注意拼接后的字符串总长度要小于目的串的长度.