C语言没有字符串类型,要用字符数组来模拟。char类型产生不了字符串,它本身只有一个字节,一个字符就是一个字节,哪来的字符串呢。
char a[5];可以最多四个字符,最后一位\0或者0结束
字符串一定是字符数组,字符数组不一定是字符串
因为字符串要以0结束或者\0。
字符串数组的初始化
- 错误初始化:
char a[]={'a','b','c'};
看输出:
./a.out
a = abcIÿ #产生了乱码,这是因为没有找到结束符。
- 正确初始化:
char a[]={'a','b','c',0};
输出:
./a.out
a = abc
char a[]="ssssswwwww";#双引号认为是字符串会自动补0,这个是最常用的初始化。
输出:
./a.out
a = ssssswwwww
注意点:
1.
char a[]={'a','b',0,'c','d'};
输出:
./a.out
a = ab #中间的0被当作结束符,不再执行后面。
\0后面接数字,有可能组成转义字符:
char a[]="\012aaaa";
输出:
./a.out
a =
aaaa
012是\n的ascii码。
随机数的产生
#include <stdio.h>
int main(void)
{
srand( (unsigned int)time (NULL) );
int i = 0;
int num;
for (i = 0; i<10; i++)
{
num = rand();
printf("num = %d\n",num);
}
}
time(NULL)功能获取系统当前时间,由于时间会变,srand()也会改变。