将字符串str1=“abc”连接到字符串str2="def”的后面。利用字符指针编写
不能用其它函数,strlen、strcpy、memcpy这些就都不能用。只能用指针移动的方法来拷贝,并且,在最后要把最后一个位置设置为\0;
代码如下:
#include <iostream>
using namespace std;
//把str2拷贝到str1后面
char* mystrcat(char* str1, char* str2)
{
char* p = str1;
//将指针移动到最后
while (*p != '\0')
p++;
//将str2中的内容拷贝到str1
while (*str2 != '\0')
{
*p = *str2;
p++;
str2++;
}
*p = '\0'; //不要漏写这一句,以便字符串能正确结束
return str1;
}
int main()
{
char str1[20] = "abc";
char str2[20] = "def";
//把str1拼接到str2后面
mystrcat(str2, str1); //注意参数顺序
cout << "拼接后的字符串:";
cout << str2 << endl;
return 0;
}
#include<iostream>
using namespace std;
#include<cstring>
void output(char *str1);
char *memcpy(char *str1, char *str2, int n);
int main()
{
int n= 3; //n代表取str2前n个字符连接到str1
char str1[20], str2[10];
cout << "input the string of str1、str2:" << endl;
gets_s(str1); //得到两个字符串
gets_s(str2);
cout << "input the number of n:";
cin >> n;
memcpy(str1, str2,n);
cout << str1<< endl;
return 0;
}
char *memcpy(char *str1, char *str2, int n) //连接函数
{
char *des = str1;
for (; *str1 != '\0';) //遍历str1
{
str1++;
}
for (int i = 0; i < n;i++) // 将str2前n个字符追加至str1
{
*str1 = *(str2 + i);//
str1++;
}
*str1 = '\0';
return des;
}
#include<iostream>
int main()
{
char *str1 = "abc";
char *str2 = "def";
char str2_1[20] = { 0 };
char *p = str2_1;
while (*str2)
{
*p = *str2;
p++;
str2++;
}
while (*str1)
{
*p = *str1;
p++;
str1++;
}
std::cout << str2_1 << std::endl;
return 0;
}
#include <stdio.h>
char * strcat(char * dest, const char * src)
{
char *tmp = dest;
while (*dest)
dest++;
while ((*dest++ = *src++) != '\0')
;
return tmp;
}
int main()
{
char dst[100] = "asdf";
const char * src = "qwer";
char* temp = strcat(dst,src);
printf("%s",temp);
return 0;
}
这不是送分题?
直接上代码。
char * strcat(char * dest, const char * src)
{
char *tmp = dest;
while (*dest)
dest++;
while ((*dest++ = *src++) != '\0')
;
return tmp;
}
char * strncat(char *dest, const char *src, size_t count)
{
char *tmp = dest;
if (count) {
while (*dest)
dest++;
while ((*dest++ = *src++)) {
if (--count == 0) {
*dest = '\0';
break;
}
}
}
return tmp;
}
```c