本文目录一览:
- 1、C语言,读取字符串的字符时出错问题
- 2、c语言字符串连接出错,str1=str2&str3;
- 3、C语言提示读取字符串时出错,但程序能运行出正确结果
- 4、c语言中运行报错 error C2018: unknown character '0xa1',可是整个语句根本没有'0xa1'···为啥啊
- 5、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