接着看字符串与数组 http://www.imooc.com/code/5626
数组定义字符串的两种格式:
1、char 字符串名称[长度] = "字符串值";
2、char 字符串名称[长度] = {'字符1','字符2',...,'字符n','\0'}; //这里最后一个元素必须是'\0','\0'表示字符串的结束标志;
※采用第2种方式的时候在数组中不能写中文。
※ 在输出字符串的时候要使用:printf(“%s”,字符数组名字);或者puts(字符数组名字);
小实验:
#include <stdio.h>
void say(char string[]) //这里数组参数的中括号[]别忘了写哟!
{
printf("%s\n", string); //%s→输出字符串
}
int main()
{
char string[] = "我在慕课网上学习IT技能!";
say(string);
return 0;
}
调试结果:
试着将 第4行的 printf("%s\n", string); 替换为 puts(string);
调试结果一样!!!
****************************************************************************
※ strcpy()拷贝之后会覆盖原来字符串且不能对字符串常量进行拷贝
strcat在使用时s1与s2指的内存空间不能重叠,且s1要有足够的空间来容纳要复制的字符串
以以下小实验作为结束这个初级入门课程的里程碑:
在一个长度为10的整型数组里面,保存了班级10个学生的考试成绩。要求编写5个函数,分别实现计算考试的总分,最高分,最低分,平均分和考试成绩降序排序。
#include <stdio.h>
#define N 10
int sum(int a[])
{
int i, sum1 = 0;
for (i = 0; i<N; i++)
sum1 += a[i];
return sum1;
}
int max(int a[])
{
int i, sum = 0, temp = 0;
for (i = 0; i < N; i++)
{
if (a[i]>temp)
temp = a[i];
}
return temp;
}
int min(int a[])
{
int i, sum = 0, temp = a[0];
for (i = 1; i < N; i++)
{
if (a[i]<temp)
temp = a[i];
}
return temp;
}
float avg(int a[])
{
return (float)sum(a) / N;
}
void sort(int a[])
{
int i,j,temp;
for (i = 0; i < N; i++)
{
for (j = 0; j < N - i; j++)
{
if (a[j] < a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
printf("成绩排序:\n");
for (i = 0; i < N; i++)
printf("%d ",a[i]);
}
int main()
{
int score[N] = { 67, 98, 75, 63, 82, 79, 81, 91, 66, 84 };
printf("总分是%d分\n", sum(score));
printf("最高分是%d分。\n", max(score));
printf("最低分是%d分。\n", min(score));
printf("平均分是%.2f分。\n", avg(score));
sort(score);
return 0;
}
调试结果:
若对于以上源代码有个人见解的,欢迎一起学习交流!!