关于字符串终止符号
#include<stdio.h>void copy(char *p1, char *p2, int m)
{
int n = 0;
while(n<m-1)
{
n++;
p1++;
}
*p2=*p1;
}
int main()
{
char str1[80],str2[80];
int m;
printf("请输入一个字符串:\n");
gets(str1);
printf("请输入要从第几个开始:\n");
scanf("%d", &m);
copy(str1, str2, m);
printf("%s", str2);
return 0;
}
为什么输入
HELLO
2
然后结果是E @
为什么会出现@这种符号
然后我加了终止符,修改后的代码如下
#include<stdio.h>
void copy(char *p1, char *p2, int m)
{
int n = 0;
while(n<m-1)
{
n++;
p1++;
}
while(*p1!='\0')
{
*p2=*p1;
p1++;
p2++;
}
}
int main()
{
char str1[80],str2[80];
int m;
printf("请输入一个字符串:\n");
gets(str1);
printf("请输入要从第几个开始:\n");
scanf("%d", &m);
copy(str1, str2, m);
printf("%s", str2);
return 0;
}
然后就正常了
请问此处终止符的作用是什么,谢谢了