此程序可通過以下步驟實(shí)現(xiàn):
創(chuàng)新互聯(lián)公司主營新巴爾虎右網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),新巴爾虎右h5微信平臺(tái)小程序開發(fā)搭建,新巴爾虎右網(wǎng)站營銷推廣歡迎新巴爾虎右等地區(qū)企業(yè)咨詢
1、輸入一個(gè)正整數(shù)
2、將整數(shù)轉(zhuǎn)換為字符串(使用sprintf函數(shù))
3、求字符串的長度(strlen函數(shù)),即正整數(shù)的位數(shù)
代碼如下:
#include?stdio.h
#include?string.h
int?main()
{
long?num;
char?str[20];
scanf("%ld",?num);
sprintf(str,?"%ld",?num);
printf("%d",?strlen(str));
return?0;
}
這樣寫主要是考慮到整數(shù)的前面可能有0,比如:00090,是兩位數(shù)。如果確認(rèn)沒有前置0的話,可以簡(jiǎn)化過程,省去轉(zhuǎn)換為字符串的過程,直接用gets得到字符串。
fmt.Sprint()的參數(shù)為interface,可以將任意的類型轉(zhuǎn)為string
函數(shù)原型:func FormatInt(i int64, base int) string
參數(shù)說明:base為進(jìn)制數(shù)
base為十和十六進(jìn)制數(shù)的區(qū)別的舉例
var gostrs []string
var cstrs []*C.char
header := (*reflect.SliceHeader)(unsafe.Pointer(cstrs))
header.Data = cstrspointer
header.Len = cstrslength
for _, cstr := range cstrs {
gostrs = append(gostrs, C.GoString(cstr))
}
使用_itoa()
char *_itoa( int value, char *string, int radix );
value → 欲轉(zhuǎn)換的數(shù)值
string → 存放轉(zhuǎn)換結(jié)果的字串
radix → 進(jìn)制
int number = 12345;
char string[25];
itoa(number, string, 10); //按十進(jìn)制轉(zhuǎn)換
printf("integer = %d string = %s\n", number, string);
integer = 12345 string = 12345 --說明12345的十進(jìn)制表示就是12345
import "strconv"
int, err := strconv.Atoi(string)
int64, err := strconv.ParseInt(string, 10, 64)
string := strconv.Itoa(int)
string := strconv.FormatInt(int64,15)