c++编写程序,实现复制字符串比较的定义版
时间: 2023-08-18 07:05:07 浏览: 81
以下是C++编写的复制字符串比较的定义版程序:
```c++
#include <iostream>
#include <cstring>
using namespace std;
// 复制字符串
char* mystrcpy(char* dest, const char* src)
{
char* tmp = dest;
while((*dest++ = *src++) != '\0');
return tmp;
}
// 比较字符串
int mystrcmp(const char* str1, const char* str2)
{
while(*str1 == *str2)
{
if(*str1 == '\0')
return 0;
str1++;
str2++;
}
return (*str1 - *str2);
}
int main()
{
char str1[100], str2[100];
cout << "请输入字符串1:" << endl;
cin >> str1;
cout << "请输入字符串2:" << endl;
cin >> str2;
// 复制字符串
char* dest = new char[strlen(str1) + 1];
mystrcpy(dest, str1);
cout << "复制后的字符串1:" << dest << endl;
// 比较字符串
int result = mystrcmp(str1, str2);
if(result > 0)
cout << "字符串1大于字符串2" << endl;
else if(result < 0)
cout << "字符串1小于字符串2" << endl;
else
cout << "字符串1等于字符串2" << endl;
return 0;
}
```
在这个程序中,我们定义了两个函数 `mystrcpy` 和 `mystrcmp` 分别用于复制字符串和比较字符串。`mystrcpy` 函数的实现采用了指针运算,通过循环遍历源字符串,将每个字符依次复制到目标字符串中。`mystrcmp` 函数的实现也采用了指针运算,通过循环比较两个字符串中每个字符的大小,直到出现不同的字符或者其中一个字符串结束。最后返回两个字符串的大小关系,如果相等则返回0,如果 str1 大于 str2 则返回正整数,如果 str1 小于 str2 则返回负整数。
阅读全文