用指针判断两个字符串是否相等,不使用strcmp
时间: 2024-03-21 11:42:41 浏览: 81
可以使用指针逐一比较两个字符串的每个字符,实现代码如下:
```c
#include <stdio.h>
int main() {
char str1[100], str2[100];
printf("请输入字符串1:");
gets(str1);
printf("请输入字符串2:");
gets(str2);
int i = 0;
while (str1[i] == str2[i] && str1[i] != '\0' && str2[i] != '\0') {
i++;
}
if (str1[i] == '\0' && str2[i] == '\0') {
printf("两个字符串相等\n");
} else {
printf("两个字符串不相等\n");
}
return 0;
}
```
在这个例子中,使用了一个循环来逐一比较两个字符串的每个字符,当出现不同字符或者两个字符串已经比较完毕时,退出循环。最后判断两个字符串是否同时结束,如果结束则表示两个字符串相等,否则不相等。
相关问题
用指针的知识判断两个字符串是否相等,不使用strcmp
可以使用指针逐一比较两个字符串的每个字符,实现代码如下:
```c
#include <stdio.h>
int main() {
char str1[100], str2[100];
printf("请输入字符串1:");
gets(str1);
printf("请输入字符串2:");
gets(str2);
char *p1 = str1, *p2 = str2;
while (*p1 == *p2 && *p1 != '\0' && *p2 != '\0') {
p1++;
p2++;
}
if (*p1 == '\0' && *p2 == '\0') {
printf("两个字符串相等\n");
} else {
printf("两个字符串不相等\n");
}
return 0;
}
```
在这个例子中,使用了两个指针 `p1` 和 `p2` 分别指向两个字符串的首字符,使用循环逐一比较两个指针所指向的字符,当出现不同字符或者两个字符串已经比较完毕时,退出循环。最后判断两个指针所指向的字符是否同时为字符串结束符 `\0`,如果是则表示两个字符串相等,否则不相等。
C语言判断两个字符串是否相等
C语言中判断两个字符串是否相等的方法有几种。一种常用的方法是使用strcmp函数进行比较。strcmp函数可以比较两个null-terminated的字符串是否相等。如果两个字符串相等,strcmp函数返回0;如果不相等,返回非零值。另外一种方法是使用memcmp函数进行比较。memcmp函数可以比较任意两个字符数组是否相等。
下面是使用strcmp函数进行比较的代码示例:
```c
#include <stdio.h>
#include <string.h>
int main(void) {
char str1[] = "hello";
char str2[] = "hello";
if (strcmp(str1, str2) == 0) {
printf("The two strings are equal.\n");
} else {
printf("The two strings are not equal.\n");
}
return 0;
}
```
注意,以上代码是比较两个字符数组是否相等,而不是比较字符串常量和字符数组。如果要比较两个字符串常量,需要使用字符指针。
阅读全文