二维数组:
二维数组定义时,第一维下标可以省略(行数可以省略),但是第二维下标必须制定,(列数必须要给,列数时换行的一个标准)
int a[][3] = {1,2,3,4,5,6, 7};
并且,第一维下标和第二位下标都必须是常量或常量表达式
//外层循环用来控制行数,内层循环用来控制列数
// for (int i = 0; i < 4; i ++) {
// for (int j = 0; j < 5; j ++) {
// a[i][j] = j + 1 +5 * i;
// printf("%-2d ", a[i][j]);// -2表示左对齐,如果是三位数的话,把-2改为-3,右对齐用2
// }
// printf("\n");
字符串数组
char str1[10] = "frank";// 10表示字符串所占的空间,而不是字符串的长度,字符串的最长长度为9,后边还有一个 \0
每个字符串长度不可超过第二维列数减1
char str[3][10] = {"Frank", "iPhone", "Duck"};
printf("%s", str[1]);// 取出来第二个字符串
printf("%s", str1); scanf("%s%s%s", str[0], str[1], str[1]);// 在字符串数组中不需要对一个字符串取地址
printf("%lu", maxLength);//%lu是表示字符串对有效长度,在对字符串取长度的时候,用%lu,而不是用%d和%c
// 输入10个人的名字,按姓名从小到大排序
// 排序采用冒泡排序,从小到大,升序
char tempStr[12] = {0};//存储临时字符串
// 数组名代表数组的首地址,是一个常量地址,不可修改
char str[10][12] = {"cuichengjie","sunxiaomeng", "yezhen","qukunfeng", "ljbjbjk.l", "hucgjd", "vsbhj", "rquavdhb", "dvgfhnfg", "staybdgdg"};
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9 - i; j ++) {
if (strcmp(str[j], str[j + 1]) > 0) {//strcmp 表示字符串比较, 在比较到时候先比较第一个字母,如果相同才比较第二个,不然不往后边进行,只比较第一个字母
// 对字符串进行交换操作时,要使用strcpy函数,
strcpy(tempStr, str[j]);//将str[j]字符串中的内容拷贝到临时字符数组tempstr中。
strcpy(str[j], str[j + 1]);
strcpy(str[j + 1], tempStr);
}
}
}
printf("\n");
for (int i = 0; i < 10; i ++) {
printf("%s ", str[i]);
}
二维数组,字符串数组
最新推荐文章于 2024-05-31 22:25:57 发布