字符数组所有的元素都是字符,数组右的特点字符数组都右,但是也有一些自己独特的地方
1、字符数组
数据类型 数组名[元素个数]
char str[5]
include <stdio.h>
int main ()
{
int loop = 0;
//1、完全初始化
//除了初始化时,单就赋值而言,数组不能直接赋值
//char arr[5] = {'h','e','f','b','b'};
//只有完全 ⬆️ 初始化可以省略中括号中的元素个数
//部分初始化
char arr[5] = {'h','e','l'};
//其他初始化方式
//char arr[5] = {'\0'}
//char arr[5] = {0};
//char arr[5] = {};
//char arr[5] = "";
for (loop = 0;loop < 5; loop++)
{
printf("arr[%d]" = *%c*\n,loop,arr[loop]);
}
return 0;
}
include <stdio.h>
int main ()
{
char arr[3] = {'\0'};
int loop = 0;
for (loop = 0; loop < 3;loop++)
{
scanf("%c",&arr[loop]);
}
for (loop = 0; loop < 3;loop++)
{
printf("arr[%d] = %c\n",loop,arr[loop]);
}
return 0;
}
2、字符数组中存储字符串,字符长度
sizeof 计算“\0” 计算所占内存空间,不是一个函数
strlen 不知算‘\0’
#include <stdio.h>
int main ()
{
char arr[10] = "";
//此时不用写& 了,因为arr是数组的名字,相当于数组第0 》个元素的首地址,
//scanf目前为止忽略空格
//注意‘\0’问题
//scanf("%s",arr);
//可以接受空格
//scanf("%[^\n",arr);
//接受带空格的字符串;
gets(arr);
printf("%s\n",arr);
return 0;
}
include <stdio.h>
int main ()
{
char arr[10] = "";
//此时不用写& 了,因为arr是数组的名字,相当于数组第0 》个元素的首地址,
//scanf目前为止忽略空格
//注意‘\0’问题
//scanf("%s",arr);
//可以接受空格
//scanf("%[^\n",arr);
//接受带空格的字符串;
gets(arr);
printf("%s\n",arr);
return 0;
}
3、字符串操作的基本函数
1)strlen 计算字符串长度
2)strcpy 字符串拷贝
3)strcat 字符串最佳(请问 123)
strcmp strchr strchr strstr
“hello”可以叫字符串常量
数组使用注意事项
1、数组下标越界,修改其他数据
2、数组的元素个数再定义数组时已经确定,不能更改,✅
3、sizeof: 计算所占内存空间的大小
strlen:求字符串的实际长度,遇到第一个‘\0’结束,
4、不能直接赋值(初始化除外)
排序
选择法
5 4 3 2 1
include <stdio.h>
int main ()
{
int num[5] = {5,4,3,2,1};
int i = 0;
int j = 0;
int t = 0;
for(i = 0;i < 5 - 1;i++)
{
for(j = i + 1;j < 5 ;j++)
{
if(num[i] > num[j])
{
t = num[i];
num[i] = num[j];
num[j] = t;
}
}
}
return 0;
}
网友评论