您的位置:

c语言字符串报错,c语言输出错误代码

本文目录一览:

C语言,读取字符串的字符时出错问题

利用fgets()取得一个字符串,直到读取到"回车"符,而你得到的字符串中含有“回车”(ascii:10),比你要比较的字符串多一个“回车”,所以strcmp()比较结果一直不为零。

如第一次while循环的结果:

c语言字符串连接出错,str1=str2&str3;

不能写成str1=strcat(str2,str3);

使用了strcat(str2,str3);

语句之后,str2就变成了原来的str2+str3

因此,如果非要写成str1的话,要再加上一句:

strcpy(str1,str2);

补充;如果按照三楼那样定义的话,可以。

二楼正解。

但是如果定义成char

str1[20];

就不行了

strcat

原型:extern

char

*strcat(char

*dest,char

*src);

用法:#include

string.h

功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

举例:

//

strcat.c

#include

syslib.h

#include

string.h

main()

{

char

d[20]="Golden

Global";

char

*s="

View";

clrscr();

strcat(d,s);

printf("%s",d);

getchar();

return

0;

}

C语言提示读取字符串时出错,但程序能运行出正确结果

scanf_s里面多了一个参数N,删除他,有两个地方

scanf_s("%d%s%f%f%f", p1-num, p1-name, p1-score, p1-score + 1, p1-score + 2);

c语言中运行报错 error C2018: unknown character '0xa1',可是整个语句根本没有'0xa1'···为啥啊

错误原因:'0xa1' 是一个字符,ASCII码是161(16进制0xa1),这是因为错误行含有全角字符,全角的空格的编码是'0xa1'。

解决方法:仔细检查错误行看是否含有全角空格\分号等待,或者注释掉,再重新写一遍

注意:每行的前面都有个看不见的全角空格。

扩展资料:

C语言常见错误:

1.书写标识符时,忽略大小写:

编译程序会出错,C语言区分大小写,习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。

2.忽略变量类型,进行不合法运算:

%是求余运算,得到a/b的整余数。整型变量可进行求余运算,而实型变量则不允许进行求余运算。

3.字符常量与字符串常量混淆:

字符常量是一对单引号括起来的常量,字符串常量是一对双引号括起来的常量。C语言规定以“\0”作为字符串结束标志,它是系统自动加上的,所以字符常量“b”其实包含两个字符'b' '\0',而把它赋给一个字符变量是不行的。

4.忘加地址运算符“”:scanf函数的作用是:

按照a在内存中的地址将a的值存进去。“a”是指a在内存中的地址。

5.忽略了“=”和“==”的区别:

C语言中,“=”是赋值运算符,“==”是关系运算符。在此代码中,前者是进行比较,后者是进行赋值。

c语言为什么用字符串连接符号总是会报错

C语言没有字符串连接符号。 只能用strcat连接。

常见的str1+str2的方式是不可以用在C语言的。

strcat用法

strcat (str1, str2);

将字符串str2连接到str1上。

头文件为string.h