C语言中如何定义字符串?

2020-08-07 科技 77阅读
C语言的字符串是一片连续的空间,用'\0'表示字符串的结尾。如果从一个字符指针作为字符串的起始进行访问,当遇到'\0'之前的整段空间的值都会被当做字符串的内容。LZ的程序中只复制的字符串长度等于串长的部分,没有复制'\0'造成访问越界。在VC++中用Debug模式运行程序,自带的Microsoft
C&C++
Debugger会把未初始化的栈空间的每个字节填充为0xCC以便查错,而访问到这段空间把连续的0xCCCC当做字符串了,按GBK编码显示为汉字“烫”。
可以改成这样:
#include

#include
int
main()
{
char
a[80],b[80];
int
i,t;
scanf("%s",a);
t=strlen(a);
for(i=0;ib[i]=a[i];
b[i]='\0';
printf("%s\n",b);
}
====
[原创回答团]
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com