C语言程序编译错误:'strrev' 函数未声明
#include <stdio.h> int main() { unsigned int num; printf('Please input a integer:'); scanf('%u', &num);
char binary[33];
int i = 0;
while (num > 0) {
binary[i] = num % 2 + '0';
num /= 2;
i++;
}
binary[i] = '\0';
printf('n=%s\n', strrev(binary));
return 0;
}
这代码哪里错 程序报错内容:Compile Error(编译出错)
/judger/run/0eae32fae5984d8cb85bc9d6fb0bd3f6/main.cpp: In function 'int main()':
/judger/run/0eae32fae5984d8cb85bc9d6fb0bd3f6/main.cpp:18:22: error: 'strrev' was not declared in this scope
18 | printf('n=%s\n', strrev(binary));
| ^~~~~~内容:在代码中使用了strrev函数,但是该函数不是标准C库函数,因此编译器无法找到该函数的声明。如果想要反转字符串,可以自己编写一个函数来实现。
以下是一个简单的字符串反转函数的示例:
#include <stdio.h>
#include <string.h>
void reverse(char* str) {
int length = strlen(str);
int i, j;
char temp;
for (i = 0, j = length - 1; i < j; i++, j--) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
int main() {
unsigned int num;
printf('Please input an integer:');
scanf('%u', &num);
char binary[33];
int i = 0;
while (num > 0) {
binary[i] = num % 2 + '0';
num /= 2;
i++;
}
binary[i] = '\0';
reverse(binary);
printf('n=%s\n', binary);
return 0;
}
在这个示例中,我添加了一个reverse函数来反转字符串。函数接受一个字符数组作为参数,并使用双指针的方法将字符数组中的字符进行反转。然后在主函数中调用reverse函数来反转二进制字符串。
原文地址: https://www.cveoy.top/t/topic/pkn5 著作权归作者所有。请勿转载和采集!