C语言—使用指针完成两个字符串的拼接
指针相关知识
在说明拼接问题之前先说明一些和指针的相关问题
- 字符串数组对应的地址就是字符串数组中第一个元素对应的地址
- 字符串数组最后一个元素之后肯定是0
拼接的思路
在知道了这些之后,拼接的具体输入就是想把指针移动到第一个指针的末尾,然后在让后面的地址存储第二个字符串数组对应的值
比如说我们现在有 char s[80] 和 char t[80]两个数组,我想把s拼接到t的后面那么应该怎么做呢
第一步:移动位于字符串数组t的指针到末尾
第二步:把另一个数组拼接到后面
例子:
程序实现:将字符串 s 连接到t 的后面。如输入 Birthday 和 Happy ,则程序输出Happy Birthday
#include <stdio.h>
void mystrc(char* s, char* t);
int main() {
char s[80], t[80];
gets(s);
gets(t);
mystrc(s, t);
puts(t);
return 0;
}
void mystrc(char* s, char* t)
{
printf("%p\n",s);
// make the pointer to the end of t
while(*t != 0) t++;
while(*s != 0)
{
*t=*s;
t++;
s++;
}
}