马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Xlyxcar 于 2018-8-22 16:41 编辑
关于题2
试了一下代码,没有出错,能正常执行#include <stdio.h>
#include <string.h>
int main()
{
char str[10];
strncat(str, "I love FishC.com!", sizeof(str));
printf("str:%s, strlen:%d, sizeof:%d", str, strlen(str), sizeof(str));
return 0;
}
按照答案改进后就出问题了:int main()
{
char str[10];
strncat(str, "I love FishC.com!", sizeof(str-1));
printf("str:%s, strlen:%d, sizeof:%d", str, strlen(str), sizeof(str));
return 0;
}
还有一个问题,卡在动动手第一题。。
程序会在执行到23行时中断,查了很久,发现是f赋值的问题,好像进了for循环 程序就不承认之前的·int f = 1·一样(如果是java大概会报一个空指针)。。
下面代码在注释调23行之后就不会中断#include <stdio.h>
#include <string.h>
int main()
{
char str1[100];
char str2[100];
int cp;
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
printf("请输入比较字符数:");
scanf("%d", cp);
int f = 1;
for(int i=0, j; i<strlen(str1) && i<cp; i++)
{
if(j = str1[i] - str2[i] != 0)
{
printf("比较的结果是:%d\n", j);
//f = 0;
break;
}
}
if(f==1)
{
printf("比较的结果是:0\n");
}
return 0;
}
第三个问题:
还有c可以报错吗,每次找个错都要找好久
sizeof() 的结果是对的,,它不是看字符的长度,而是变量所占内存空间的大小 char str2[10],所以 sizeof(str2) == 10
我只是好奇为什么 str2 打印出来只有 "I lo"
|