【用c语言编写程序】请用指针编程实现:写一个函数,实现两个字符串的比较。即自己写一个strcmpa函数,函数原型为:int strcmpa(char *p1,char *p2),若两个字符串相等则返回0,否则返回这两个字符串第一个不同字符的ASCII码差值。
时间: 2024-12-29 12:28:58 浏览: 19
在C语言中,你可以使用指针来实现字符串的比较功能,类似于标准库中的`strcmp()`函数。这里是一个简单的`strcmpa()`函数实现:
```c
#include <stdio.h> // 为了使用printf()进行测试
// 函数声明
int strcmpa(char *p1, char *p2);
// 主要函数实现
int strcmpa(char *p1, char *p2) {
int diff = 0;
while (*p1 != '\0' && *p2 != '\0') { // 遍历直到遇到空字符(字符串结束)
if (*p1 != *p2) {
diff = (int)(*p1 - *p2); // 计算ASCII码差值
break; // 如果找到不同字符,就跳出循环
}
p1++; // 移动指针到下一个字符
p2++;
}
// 如果一个字符串已经结束而另一个未结束,剩余部分被视为较大的字符串
if (*p1 == '\0' && *p2 != '\0')
return -diff; // 返回负数表示第二个字符串较大
else if (*p2 == '\0' && *p1 != '\0')
return diff; // 否则返回正数表示第一个字符串较大
else
return 0; // 若两者都已结束,说明相等
}
// 测试函数
int main() {
char str1[] = "Hello";
char str2[] = "World";
int result = strcmpa(str1, str2);
if (result == 0)
printf("The strings are equal.\n");
else
printf("The first differing character has an ASCII code difference of %d.\n", result);
return 0;
}
```
阅读全文