生活随笔
收集整理的這篇文章主要介紹了
实验7-3-6 字符串转换成十进制整数 (15分)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
十六進(jìn)制字符包括0~9 和 a~f(在本道題中規(guī)定不分大小寫(xiě))
解題思路
循環(huán)輸入一字符串,當(dāng)出現(xiàn)‘#’時(shí)退出輸入。設(shè)置兩個(gè)標(biāo)志位,分別記錄第一個(gè)負(fù)號(hào)出現(xiàn)的位置和第一個(gè)十六進(jìn)制出現(xiàn)的位置。(如果第一個(gè)十六進(jìn)制字符之前出現(xiàn)大于一個(gè)“-”,同樣按照一個(gè)處理,當(dāng)作負(fù)數(shù))比較兩個(gè)位置的大小,判斷結(jié)果是否為負(fù)數(shù)。輸出結(jié)果
#include
<stdio.h>
#define N
1000
int main()
{char ch
;int len1
=0,len2
=0;char str1
[N
];char str2
[N
];int str3
[N
];int index1
,index2
;int cnt1
=0;int temp
=1;int sum
=0;
ch
=getchar();for(int i
=0;ch
!='\n';i
++){str1
[i
]=ch
;len1
++;ch
=getchar();}for(int j
=0;j
<len1
;j
++){if(str1
[j
]=='-'){index1
=j
;break;}}for(int k
=0;k
<len1
;k
++){if((str1
[k
]>='0'&&str1
[k
]<='9')||(str1
[k
]>='a'&&str1
[k
]<='f')||(str1
[k
]>='A'&&str1
[k
]<='F')){index2
=k
;break;}}for(int k
=0;k
<len1
;k
++){if((str1
[k
]>='0'&&str1
[k
]<='9')||(str1
[k
]>='a'&&str1
[k
]<='f')||(str1
[k
]>='A'&&str1
[k
]<='F')){str2
[cnt1
++]=str1
[k
];}}for(int i
=0;i
<cnt1
;i
++){if(str2
[i
]>='0'&&str2
[i
]<='9'){str3
[i
]=str2
[i
]-'0';}else if(str2
[i
]>='a'&&str2
[i
]<='f'){str3
[i
]=str2
[i
]-'a'+10;}else if(str2
[i
]>='A'&&str2
[i
]<='F'){str3
[i
]=str2
[i
]-'A'+10;}}for(int j
=cnt1
-1;j
>=0;j
--){sum
+=temp
*str3
[j
];temp
*=16;}if(index1
<index2
){printf("-%d\n",sum
);}else if(index1
>index2
){printf("%d\n",sum
);}return 0;
}
總結(jié)
以上是生活随笔為你收集整理的实验7-3-6 字符串转换成十进制整数 (15分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。