C:不使用内置函数将较短的字符串复制到更长的字符串

Liq*_*tal 1 c string

这里的任务是使用指针复制n(null终止)string2(s2)中的第一个字符s1.我知道如何将字符串从一个复制到另一个,但我遇到了消除额外值的问题.例如:

s1= 'This is a test'
s2 = 'A test'

after copying, I am left with:

s1 = 'a tests a test'
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

char *s1pointer;
const char *s2pointer;
int i;
int number_char_replace;

s1pointer = s1;
s2pointer = s2;
i=0;
number_char_replace = num; 

for(i=0;s1pointer[i] !='\0'||s2pointer[i]!='\0';i++)
{
s1pointer[i]=s2pointer[i];
}
}
Run Code Online (Sandbox Code Playgroud)

这是家庭作业,所以请不要觉得有必要给我答案.对逻辑的暗示将不胜感激.谢谢.

cni*_*tar 6

您需要以某种方式指示for之后的字符串结尾.扰流板:

s1pointer[i] = 0;

  • 哇.我不知道你能做到的! (4认同)