【发布时间】:2017-12-13 10:38:51
【问题描述】:
我想将字符串转换为int 并从main 调用函数。其中第一个字符是声明数字基数的字母,字符串中的其余字符是数字。我可以让函数单独工作,但是当使用main 函数调用它时,它不会打印出正确的值。
使用二进制的用户输入示例:
b1000
b1010
结果应该是:
b
b
1000
1010
代码如下:
#include <stdio.h>
#include <string.h>
#include <math.h>
int str_to_int(inputbase) {
char num1[50];
num1[50] = inputbase;
char numcpy1[sizeof(num1) - 1];
int i, len1;
int result1 = 0;
//printf("String: ");
//gets(num1);
//Access first character for base
printf("%c \n", num1[0]);
//Remove first character for number1 and number 2
if (strlen(num1) > 0) {
strcpy(numcpy1, &(num1[1]));
} else {
strcpy(numcpy1, num1);
}
len1 = strlen(numcpy1);
//Turn remaining string characters into an int
for (i = 0; i < len1; i++) {
result1 = result1 * 10 + ( numcpy1[i] - '0' );
}
printf("%d \n", result1);
return result1;
}
int main() {
char *number1[50], *number2[50];
int one, two;
printf("\nAsk numbers: \n");
gets(number1);
gets(number2);
one = str_to_int(number1);
two = str_to_int(number2);
printf("\nVerifying...\n");
printf("%d\n", one);
printf("%d\n", two);
return 0;
}
【问题讨论】:
-
int str_to_int(inputbase)在你的机器上编译吗?你用的是什么编译器? -
这对我来说很像一个家庭作业问题。
-
我正在使用 gcc 编译器。函数 int str_to_int(inputbase) 确实编译