error C3872: "0xa0": 此字符不允许在标识符中使用

从书(PDF)上复制了一段代码到VS2008,结果产生了60个错误,我也是醉了。。。。


#include <iostream>
using namespace std;

#include <stdlib.h>

#include <string>
using namespace std;
int main()
{

	char a[20],*str1="hello",*str2="wang",*str3;   
	strcpy(a,str1);   
	strcat(a," ");   
	strcat(a,str2); 
  cout<<strlen(str1)<<" "<<strlen(a)<<endl;   
	cout<<strcmp(a,str1)<<" "<<strcmp(a+6,str2)
		<<" "<<strcmp(str1,str2)<<endl;   
	str3=strchr(str1,'l');   
	cout<<str3-str1<<"  ";   
	str3=strrchr(str1,'l');   
	cout<<str3-str1<<endl;   
	str3=strstr(str2,"an"); 
  cout<<str2<<" "<<str3<<endl; 
	while(1);
	return 0;
}




解决方法:


就是每行的末尾带上了很多看不见的字符(直接粘过来有很多全角空格,用editplus打开文件就能看出来那些看不见的字符了...)。在下一行的头开始删除,一直到上一行的末尾,再回车换行,即可把上一行末尾的乱码字符全部删除掉


网上查到的资料解决方法


error C3872: '0xa0': this character is not allowed in an identifier



或者    error C3872: "0xa0": 此字符不允许在标识符中使用


  这是因为直接复制代码的问题。0xa0是十六进制数,换成十进制就是160,表示汉字的开始。


解决办法:在报错的代码行检查两边的空格,用英文输入法的空格替换掉。


万恶的网络,万恶的word,这些无厘头的错误都是你们搞出来的!!


改正后的代码:

<pre name="code" class="html">#include <iostream>
using namespace std;

#include <stdlib.h>

#include <string>
using namespace std;
int main()
{
	char a[20],*str1="hello",*str2="wang",*str3;
	strcpy(a,str1);
	strcat(a," ");//在a串后面添加一个空格字符
	strcat(a,str2);
	cout<<strlen(str1)<<" "<<strlen(a)<<endl;//显示长度
	cout<<strcmp(a,str1)<<" "<<strcmp(a+6,str2)
		<<" "<<strcmp(str1,str2)<<endl;//比较
	str3=strchr(str1,'l');//左定位
	cout<<str3-str1<<" ";
	str3=strrchr(str1,'l');//右定位
	cout<<str3-str1<<endl;
	str3=strstr(str2,"an");
	cout<<str2<<" "<<str3<<endl;
	while(1);
	return 0;
}


 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值