C语言:将一已知字符串第n个字符开始的剩余字符复制到另一字符数组中。

2025-02-15 21:26:31
推荐回答(3个)
回答1:

你现在是要打印两个字符串的内容,a和b是字符变量,p和q是指针变量,你输出的格式是%s是以字符串的格式输出的所以这时候你要用a和b才行(a和b是数组名),如果你想以p和q输出的话那就要在倒数第三行加上这么几句
p=a;
q=b;
for(;*p!='\0';p++)
printf("string a is :%c",*p);
for(;*q!='\0';q++)
printf("string b is :%c",*q);

回答2:

p=a;
q=b
这边不是进行过赋值了么,他们都是指向同一个地址空间啊,然后他进行了这个操作
if(strlen(a)>=n) p+=n-1;

这个的意思就是说如果你需要截取的字符长度(也就是你输入的n)是小于a的长度的,那么就把p这个指针(此时和a还是指向同一区间)移动至需要开始复制的位置。
然后这个for循环就是逐个把值赋到Q中,最后结束的时候通过
*q='\0';来结束

回答3:

p=a;
q=b;
都指向同一个地址空间! 一样的