使用c语言,给这段代码排错#include<stdio.h> #include<string.h> void main(){ int i,k; char str1[80],str2[80]; long number; printf("please enter a string:"); gets(str1); k=0; for(i=0;str1[i]!='\0';i++) if((str1[i]>='0'&&str1[i]<='9')||(str[i]>='a'&&str[i]<='f')||(str1[i]>='A'&&str1[i]<='F')){ str2[k]=str[i]; k++; } str2[k]='\0'; number=0; for(i=0;str2[i]!='\0'i++) if(str2[i]>='0'&&str2[i]<='9') number=number*16+str2[i]-'0'; else if(sre2[i]>='a'&&str2[i]<='f') number=number*16+str2[i]-'a'+10; else if(str2[i]>='A'&&str2[i]<='F') number=number*16+str2[i]-'A'+10; puts("The new string is:"); puts(str2); printf("number=%ld\n",number); }
时间: 2023-10-11 10:06:41 浏览: 171
H3C排错案例合集交换篇.rar
有以下几处错误:
1. `str` 未定义,应该改为 `str1`。
2. 第二个 for 循环的条件语句中缺少一个 `&&`,应该改为:`for(i=0;str2[i]!='\0' && i<80;i++)`。
3. 第三个 if 语句中 `sre2` 应该改为 `str2`。
下面是修改后的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
int i, k;
char str1[80], str2[80];
long number;
printf("please enter a string:");
gets(str1);
k = 0;
for (i = 0; str1[i] != '\0'; i++)
if ((str1[i] >= '0' && str1[i] <= '9') || (str1[i] >= 'a' && str1[i] <= 'f') || (str1[i] >= 'A' && str1[i] <= 'F')) {
str2[k] = str1[i];
k++;
}
str2[k] = '\0';
number = 0;
for (i = 0; str2[i] != '\0' && i < 80; i++)
if (str2[i] >= '0' && str2[i] <= '9')
number = number * 16 + str2[i] - '0';
else if (str2[i] >= 'a' && str2[i] <= 'f')
number = number * 16 + str2[i] - 'a' + 10;
else if (str2[i] >= 'A' && str2[i] <= 'F')
number = number * 16 + str2[i] - 'A' + 10;
printf("The new string is: %s\n", str2);
printf("number=%ld\n", number);
return 0;
}
```
阅读全文