依旧是C语言的基础补习,所以,不需要标题~
字符串的长度问题:
char a[] = "baby";
char *b = "baby";
sizeof(a)结果为5,strlen(a)结果为4,
sizeof(b)结果为4,strlen(b)结果为4,
解释:strlen函数不会计算附加在字符串后'\n'的长度
sizeof 会对两种类型的字符串的长度进行不同的取舍(注意)
char c[] = {'b', 'a', 'b', 'y', '\0', 'c'};
c应该被称作是字符数组,而非字符串,sizeof(c)结果为6,而strlen(c)结果为4、
字符串的输入函数:
scanf("%s", c);在输入字符串时,有较多的问题,需要注意。
int getchar();冲缓冲区中以此读入一个字符。
fgets(char *s, int size, FILE *stream);
gets(char *s);有较多问题,避免使用
注意:
sizeof('a');的结果为4,故:'a'的类型为int,而不是char,正如getchar()的返回值是int型,不是char
过程控制语句:
循环:for,while, do-while以及由loop:-goto(不推荐使用)构成的循环
排序:
冒泡法排序:每进行一轮循环都将最大(最小)的数提到边上位置,下一轮循环将不在对边上的最大(最小)数进行比较和排序。
for (i = 0; i < n; i++)
{
for (j = i; j < n; j++)
if (data[i] > data[j])
{
tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}
}
插入排序:每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,找出插入位置,将该元素插入到有序数列的合适位置中。
for (i = 1; i < 10; i++)
{
j = i;
tmp = data[j];
while (k < data[j-1])
data[j] = data[--j];
data[j] = k;
}
阅读(1146) | 评论(0) | 转发(0) |