C++利用指针实现字符串比较
用Ascii码进行比较,但总是输出0
/*编写程序,实现两个字符串比较的自定义版本:
int strcmp(const char *str1,const char *str2);
//当strl>str2时,返回正数;1
//当str1==str2时,返回0;
//当strl<str2时,返回负数。-1
*/
#include<iostream>
#include<string>
using namespace std;
int strcmp(const char* str1, const char* str2);//函数声明
int main() {
cout << "请输入两个字符串" << endl;
char str1[100];
char str2[100];//存储两个数组
char ch = 0;
int i = 0; int j = 0;
while ((ch = getchar()) != '\n') {
str1[i] = ch;
i++;
}
while ((ch = getchar()) != '\n') {
str2[j] = ch;
j++;
}
cout << "你输入的两个字符串分别是:" << endl;
for (int a = 0; a < i; a++) {
cout << str1[a];
}
cout << endl;
for (int a = 0; a < j; a++) {
cout << str2[a];
}
cout << endl;
cout<<strcmp(&str1[i],&str2[j]);
return 0;
}
int strcmp(const char* str1,const char* str2) {
int len1 = 0, len2 = 0;
len1 = *str1 / str1[0];
len2 = *str2 / str2[0];
int size1 = 0, size2 = 0;
for (int i = 0; i < len1; i++) {
size1 += (int)str1[i];
}
for (int i = 0; i < len2; i++) {
size2 += (int)str2[i];
}
if (size1 > size2)
return 1;
if (size1 < size2)
return -1;
if (size1 = size2)
return 0;
}
总是输出0,但找不到问题
是字符串长度计算上面出问题了吗?