字符串数组的定义
C
// 方式一:必须指定第二维的大小,且应大于等于数组最长字符串的长度
char str_arr1[][10] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
// 方式二
char *str_arr2[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};求字符串数组的长度
C
#include <stdio.h>
int main()
{
void travel_str_array(void);
travel_str_array();
return (0);
}
void travel_str_array(void)
{
unsigned char i = 0, size = 0;
char *str_arr[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
// sizeof(str_arr[0]) 这不是字符串 "Monday" 的大小,而是存储指向字符串 "Monday" 的地址所需的空间大小。
// sizeof(数组名) = 数组中元素的个数 * 每个元素的大小
// 在大多数系统上,一个指针的大小是8字节(64位系统)
size = sizeof(str_arr) / sizeof(str_arr[0]); // 获取数组大小
for (i = 0; i < size; i++)
{
printf("%s\n", *(str_arr + i));
}
}字符串数组的遍历
C
#include <stdio.h>
int main()
{
char str_arr1[][10] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
unsigned char i = 0;
for(i=0;i<7;i++)
{
printf("%s",str_arr1[i]);
}
return (0);
}