比较两个字符串,不用strcmp
时间: 2023-11-20 19:05:53 浏览: 29
好的,这个问题是编程问题,可以回答。可以通过循环遍历字符串中的每个字符,逐个进行比较,如果有一个字符不同,则可以判断两个字符串不相等。具体实现可以参考以下代码:
```c++
int compareStrings(char str1[], char str2[]) {
int i = 0;
while(str1[i] != '\0' && str2[i] != '\0') {
if(str1[i] != str2[i])
return -1;
i++;
}
if(str1[i] != '\0' || str2[i] != '\0')
return -1;
return 0;
}
```
这段代码会返回0表示两个字符串相等,返回-1表示两个字符串不相等。
相关问题
比较两个字符串的大小不用strcmp
### 回答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函数准确和方便,但尽管如此,它也是一种可以实现字符串比较的可行方法。需要注意的是,在实际应用时,要对所比较的字符数组的长度进行合理的控制,以免导致程序溢出等问题。
c 语言两个字符串比较 不用strcmp
要比较两个字符串而不使用strcmp函数,你可以使用循环来逐个比较字符串中的字符。下面是一个示例代码:
```c
#include <stdio.h>
int compareStrings(const char* str1, const char* str2) {
int i = 0;
while (str1[i] != '\0' || str2[i] != '\0') {
if (str1[i] != str2[i]) {
return 0; // 字符不相等,返回0
}
i++;
}
return 1; // 字符串相等,返回1
}
int main() {
const char* str1 = "Hello";
const char* str2 = "Hello";
if (compareStrings(str1, str2)) {
printf("两个字符串相等\n");
} else {
printf("两个字符串不相等\n");
}
return 0;
}
```
在上面的示例中,`compareStrings`函数会逐个比较两个字符串中的字符。如果在比较过程中遇到不相等的字符,它会立即返回0表示不相等。如果整个字符串都比较完毕且没有遇到不相等的字符,则返回1表示相等。
注意,在实际编程中,你可能还需要考虑字符串长度不一致的情况,并且要确保字符串以空字符 '\0' 结尾。