关于\0 的问题
将长度为 n 的字符串 s 分成两个子串,前 m(任意值)个字符生成子串s1,后 n-m个字符生成子串s2。约定:当m≥n时,s1等于原串,s2为空串;当m≤0时,s1为空串,s2等于原串。编写程序段时,可以使用库函数strcpy。void split(char s[],char s1[],char s2[],int m)
{
int n,i,j;
n=strlen(s);
if(m>=n)
{
strcpy(s1,s);
strcpy(s2,"");
}
else if(m==0)
{
strcpy(s2,s);
strcpy(s1,"");
}
else
{
for(i=0;i<m;i++)
s1[i]=s[i];
s1[i]='\0';//这一步不是把上一步的结果给变了吗,为什么要有这一步?
for(j=0;s2[j]=s[i];i++,j++);
}