#include<stdio.h> #include<string.h> int strcompare(const char * str1, const char * str); int main() {char str1[30],str2[30],*p,*q; int a=0; p=str1; q=str2; fgets(str1,30,stdin); fgets(str2,30,stdin); a=strcompare(p, q); printf("%d",a); return 0; } int strcompare(const char * str1, const char * str) {int i; while(*str1==*str&&*str1!='\0'&&*str!='\0') { str1++; str++; } i=*str1-*str; return i; }求ASCLL的差值,检查有什么错误
时间: 2023-06-19 08:03:50 浏览: 76
代码中存在以下问题:
1. fgets()函数会在输入的字符串末尾添加一个换行符,需要在比较之前去除换行符。
2. 当字符串长度相等时,应该返回0,但是该代码返回的是ASCII码的差值,因此需要特判这种情况。
修改后的代码如下:
```
#include<stdio.h>
#include<string.h>
int strcompare(const char * str1, const char * str2);
int main() {
char str1[30],str2[30];
int a=0;
fgets(str1,30,stdin);
fgets(str2,30,stdin);
a=strcompare(str1, str2);
printf("%d",a);
return 0;
}
int strcompare(const char * str1, const char * str2) {
int i;
while(*str1==*str2&&*str1!='\0'&&*str2!='\0') {
str1++;
str2++;
}
if (*str1 == *str2) {
return 0;
}
i=*str1-*str2;
return i;
}
```
注意,这里使用了字符串指针而不是字符指针,因为我们需要比较的是两个字符串,而不是两个字符。
相关问题
只使用#include <stdio.h> #include <string.h>
这两个头文件都是C语言标准库中的头文件,其中<stdio.h>包含了一些输入输出函数的声明,如printf和scanf;<string.h>包含了一些字符串操作函数的声明,如strcpy和strlen。使用这两个头文件可以完成很多基本的C语言程序设计,例如输出、输入、字符串操作等等。下面给出一个简单的例子:
```
#include <stdio.h>
#include <string.h>
int main() {
char str1[10] = "hello";
char str2[10] = "world";
printf("%s ", str1);
printf("%s\n", str2);
strcat(str1, str2);
printf("%s\n", str1);
printf("The length of str1 is %d.\n", strlen(str1));
return 0;
}
```
这个程序输出了两个字符串"hello"和"world",然后将它们拼接在一起并输出结果"helloworld",最后输出了拼接后的字符串长度11。
include <stdio.h>#include <stdlib.h>
这是一个C语言的标准头文件的引用,其中<stdio.h>包含了C语言的输入输出函数,而<stdlib.h>包含了一些通用的工具函数和内存分配函数。这些头文件在C语言中非常常见,几乎每个C程序都会用到它们。下面是一个简单的例子,展示了如何使用这两个头文件。
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num;
char str[100];
printf("Enter an integer: ");
scanf("%d", &num);
printf("You entered %d.\n", num);
printf("Enter a string: ");
scanf("%s", str);
printf("You entered %s.\n", str);
return 0;
}
```
上面的程序使用了<stdio.h>中的printf和scanf函数,以及<stdlib.h>中的exit函数。输入一个整数和一个字符串,然后将它们输出到控制台上。