1.sprintf和scanf函数
今天写一个C程序,不知道为啥在使用sprintf和scanf函数中一直出错。后面查找相关资料,终于有点头绪。如下代码:
char * str;
scanf("%s",str);
这个代码为啥会出错?因为没有为它分配内存,所以会出错,其实sprintf函数也是类似的。所以我们可以有俩种解决办法,一是通过malloc函数动态分配内存,二是我们可以通过字符数组声明字符串。代码如下:
char * str = (char *)malloc(100);//1
char strs[100] ;//2
2.介绍以下sprintf函数
我们可以用这个函数实现拼接字符串以及int类型的数字转为字符串
char str1[100];
sprintf(str1,"name=%s\tid=%d\tscore=%d\n",stu[i].name,stu[i].stuId,stu[i].score);
3.简单的排序
for(i=0;i<=9;i++){
for (j=i+1;j<=10;j++){
if(stu[i].score>stu[j].score)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
这个排序并不难,但是就是因为这块代码我没有把边界条件写好,所以运行程序的时候一直提示Segmentation fault。