#include<stdio.h>
#include<stdlib.h>/span>
#include<string.h>
int main() {
char str[10] 。
int x, y, z;
for(int i = 1; i <= strlen(str); i ){
str[i] = i;
}
sscanf(str, "%d", &x); // Using sscanf
printf("
x的值:%d", x)。)
y = atoi(str); // Using atoi()
printf("
y的值:%d", y)。)
return 0。
我累了,使用了scanf和atoi,但它們似乎都不起作用。有什么辦法可以將str轉換為int嗎?
uj5u.com熱心網友回復:
這個回圈:
for(int i = 1; i <= strlen(str); i ){
str[i] = i;
}
這很奇怪,而且是錯誤的。 如果你想用這個回圈來構建要轉換的字串,請嘗試這樣做:
int i。
for(i = 0; i < 5; i ) {
str[i] = (i 1) '0。
}
str[i] = ''/span>;
printf("The string: %s
", str)。)
在這里,我做了幾個改動:
。這個回圈從0運行到4,只是為了設定
str[]中的前5個位置。 (你的回圈從1開始,這意味著它未能設定str[0],并且它試圖運行到strlen(str),這不可能成功,因為str還沒有被設定為任何東西,所以你不能計算它的長度。)當向
str[i]中存盤值時,它在i中添加了1(意味著它將設定位置[0]到[4]),然后額外添加常數'0'(在ASCII機器上是48)以將數字1-5轉換為數字字符'1'到'5'。在設定了5個數字之后,它設定了
str[i] = '';,為構建的字串添加適當的空終止。
然后它列印出str,所以你可以看到它是什么,然后嘗試使用atoi和scanf將其轉換為int。
uj5u.com熱心網友回復:
char myarray[] = "-123"/span>;
int i;
sscanf(myarray, "%d"/span>, &i);
將char陣列轉換為int
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/322454.html
標籤:
