比较两个字符串的大小不用strcmp
时间: 2023-05-31 22:18:12 浏览: 319
字符串比较──strcmp函数-C语言基础课件
### 回答1:
可以使用循环逐个比较字符串中每个字符的ASCII码值来比较两个字符串的大小。具体实现可以参考以下代码:
```c
int compare(char* str1, char* str2) {
int i = ;
while (str1[i] != '\' && str2[i] != '\') {
if (str1[i] > str2[i]) {
return 1;
} else if (str1[i] < str2[i]) {
return -1;
}
i++;
}
if (str1[i] == '\' && str2[i] == '\') {
return ;
} else if (str1[i] == '\') {
return -1;
} else {
return 1;
}
}
```
该函数返回值为1表示str1大于str2,返回值为-1表示str1小于str2,返回值为表示str1等于str2。
### 回答2:
比较两个字符串的大小可以使用以下方法:
1. 基于字符比较
可以使用循环遍历两个字符串,按照字符的ASCII码比较每个字符的大小,直到出现不相同的字符或其中一个字符串结束。如果两个字符串的所有字符都相同,则比较它们的长度,长度较短的字符串比较小。以下是代码示例:
```c
int compare_string(char* str1, char* str2) {
int i = 0;
while(str1[i] != '\0' && str2[i] != '\0') {
if(str1[i] != str2[i]) {
return str1[i] < str2[i] ? -1 : 1;
}
i++;
}
if(str1[i] == '\0' && str2[i] != '\0') {
return -1;
} else if(str1[i] != '\0' && str2[i] == '\0') {
return 1;
} else {
return 0;
}
}
```
2. 基于字符串长度比较
如果两个字符串的所有字符都相同,可以比较它们的长度,长度较长的字符串比较大。以下是代码示例:
```c
int compare_string(char* str1, char* str2) {
int len1 = 0, len2 = 0;
while(str1[len1] != '\0') {
len1++;
}
while(str2[len2] != '\0') {
len2++;
}
if(len1 < len2) {
return -1;
} else if(len1 > len2) {
return 1;
} else {
return 0;
}
}
```
以上两种方法都是基于比较字符或比较字符串长度来确定字符串大小的。需要注意的是,这两种方法都只适用于比较仅包含字母和数字的字符串。对于包含其他字符的字符串,比较时需要进行特殊处理。
### 回答3:
比较两个字符串的大小不用strcmp,需要用到字符数组和循环语句。具体步骤如下:
1.声明两个字符数组,分别存储需要比较的两个字符串。
2.使用循环语句,逐个比较两个字符串中对应位置上的字符。比较时,可以将字符转换为ASCII码进行比较。
3.可以设置一个计数器变量,记录两个字符串中不同的字符的个数。若两个字符串完全相等,则计数器变量为0,反之,则大于0。
4.若两个字符串长度不一致,则需要在循环中增加特定条件判断,以防止数组溢出。
5.比较结束后,根据计数器变量的值来判断两个字符串的大小关系。若计数器变量为0,则两个字符串相等;若计数器变量大于0,则第一个字符串大于第二个字符串;反之,则第一个字符串小于第二个字符串。
例如:
char str1[50] = "hello world";
char str2[50] = "hello earth";
int count = 0;
for(int i = 0; str1[i] != '\0' || str2[i] != '\0'; i++){
if(str1[i] != str2[i]){
count++;
break;
}
}
if(count == 0){
printf("str1和str2相等");
}else if(count > 0){
printf("str1大于str2");
}else{
printf("str1小于str2");
}
以上就是比较两个字符串大小的不用strcmp的方法,虽然此方法不如strcmp函数准确和方便,但尽管如此,它也是一种可以实现字符串比较的可行方法。需要注意的是,在实际应用时,要对所比较的字符数组的长度进行合理的控制,以免导致程序溢出等问题。
阅读全文