如何使用 atoi() 获得负值?
How do I get a negative value by using atoi()?
我写这段代码是为了得到一个相反形式的数字。但是,如果我使用任何负输入,它会显示正反转数。 C中的atoi函数可以处理负数吗?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void) {
char ar[40];
char ar2[40];
int fnum;
scanf("%s", ar);
for (int i = strlen(ar) - 1, j = 0; i >= 0; i--) {
ar2[j] = ar[i];
j++;
}
fnum = atoi(ar2);
printf("%d", fnum);
return 0;
}
在最后 printf
之前放这行:
if ( atoi( ar ) < 0 ) fnum = -fnum;
您可以使用strstr(haystack, needle)
将其转换为负数。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(void){
char ar[40];
char ar2[40];
int fnum;
scanf("%s",ar);
for(int i=strlen(ar)-1,j=0;i>=0;i--){
ar2[j]=ar[i];
j++;
}
if(strstr(ar, "-"))
fnum= - atoi(ar2);
else
fnum= atoi(ar2);
printf("%d",fnum);
return 0;
}
我写这段代码是为了得到一个相反形式的数字。但是,如果我使用任何负输入,它会显示正反转数。 C中的atoi函数可以处理负数吗?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void) {
char ar[40];
char ar2[40];
int fnum;
scanf("%s", ar);
for (int i = strlen(ar) - 1, j = 0; i >= 0; i--) {
ar2[j] = ar[i];
j++;
}
fnum = atoi(ar2);
printf("%d", fnum);
return 0;
}
在最后 printf
之前放这行:
if ( atoi( ar ) < 0 ) fnum = -fnum;
您可以使用strstr(haystack, needle)
将其转换为负数。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(void){
char ar[40];
char ar2[40];
int fnum;
scanf("%s",ar);
for(int i=strlen(ar)-1,j=0;i>=0;i--){
ar2[j]=ar[i];
j++;
}
if(strstr(ar, "-"))
fnum= - atoi(ar2);
else
fnum= atoi(ar2);
printf("%d",fnum);
return 0;
}