其實(shí)sscanf字符串轉(zhuǎn)數(shù)字的問(wèn)題并不復(fù)雜,但是又很多的朋友都不太了解怎么用scanf輸入字符串,因此呢,今天小編就來(lái)為大家分享sscanf字符串轉(zhuǎn)數(shù)字的一些知識(shí),希望可以幫助到大家,下面我們一起來(lái)看看這個(gè)問(wèn)題的分析吧!
c語(yǔ)言怎樣輸入字符串后轉(zhuǎn)換為數(shù)組
在C語(yǔ)言中,字符串是以字符數(shù)組方式保存的,于是字符串?dāng)?shù)組可以用二維字符數(shù)組存儲(chǔ)。
輸入時(shí),每次輸入字符串?dāng)?shù)組的一個(gè)元素(一行),根據(jù)需要,使用scanf或gets進(jìn)行輸入。
如:
charstr[10][100];//定義字符串?dāng)?shù)組,供10行,每行最多100個(gè)字節(jié)數(shù)據(jù)。
inti;
for(i=0;i<10;i++)
scanf("%s",str[i]);//輸入10行字符串?dāng)?shù)據(jù)。
從鍵盤上輸入一串?dāng)?shù)值字符串,將其轉(zhuǎn)換成對(duì)應(yīng)的數(shù)值輸出。考慮正負(fù)和其他字符
#include"stdio.h"intmain(){intn=0;chars[100];char*p=s;scanf("%s",s)
;//輸入數(shù)字字符串while(*p){n=n*10+(*p-'0')
;//把字符轉(zhuǎn)換成數(shù)值p++;}printf("%d",n)
;//輸出轉(zhuǎn)換后的整數(shù)值}
怎樣把輸入的字符型數(shù)字轉(zhuǎn)換成整形輸出
在C語(yǔ)言中將字符串轉(zhuǎn)化成整型有兩種方法。
1用atoi函數(shù)。atoi的功能就是將字符串轉(zhuǎn)為整型并返回。其聲明為intatoi(char*str);比如atoi("1234");會(huì)返回整型1234。要調(diào)用atoi,需要引用頭文件stdio.h
2用sscanf。sscanf與標(biāo)準(zhǔn)格式化輸入函數(shù)scanf類似,不過(guò)源并非是標(biāo)準(zhǔn)輸入,而是字符串。用sscanf可以處理更復(fù)雜的字符串。比如字符串char*str="a=1,b=2";定義inta,b;后可以用sscanf(str,"a=%d,b=%d",&a,&b);來(lái)將a,b值提取,計(jì)算后,a=1,b=2。要使用sscanf同樣需要引用頭文件stdio.h。
提取字符串中連續(xù)的數(shù)字并將這些數(shù)字存放在數(shù)組中
用sscanf()庫(kù)函數(shù)可以實(shí)現(xiàn)這個(gè)功能了,至于這個(gè)函數(shù)得用法網(wǎng)絡(luò)上很容易就可以搜到. 例如sscanf(a,"%[1-9]",pbuf); 把字符串a(chǎn)中得第一次出現(xiàn)得數(shù)字都存入到pbuf緩沖區(qū)中. 今天有時(shí)間了,特將sscanf函數(shù)的具體用法說(shuō)明如下,希望對(duì)你有幫助: 名稱: sscanf()-從一個(gè)字符串中讀進(jìn)與指定格式相符的數(shù)據(jù). 函數(shù)原型: Intsscanf(stringstr,stringfmt,mixedvar1,mixedvar2...); intscanf(constchar*format[,argument]...); 頭文件:
用指針完成如下功能:輸入一字符串s,再輸入一字符c,輸出該字符在字符串中出現(xiàn)了幾次。求大神
#include"stdio.h"#include"string.h"http://統(tǒng)計(jì)字符串出現(xiàn)的次數(shù)voidfunction(char*str,charc,intlen){ inti;//循環(huán)變量 intcount=0;//出現(xiàn)的次數(shù) for(i=0;i<len;i++){=""如果在字符串中出現(xiàn)=""if(str[i]="=c)"count++;=""}=""printf("%c出現(xiàn)的次數(shù)是%d次=""",c,count);=""intmain()=""charstr[100];=""字符串=""charc;=""字符=""輸入=""printf("請(qǐng)輸入一個(gè)字符串:");=""gets(str);=""printf("請(qǐng)輸入一個(gè)字符:");=""scanf("%c",&c);=""function(str,c,strlen(str));=""進(jìn)行統(tǒng)計(jì)=""}="">
好了,關(guān)于sscanf字符串轉(zhuǎn)數(shù)字和怎么用scanf輸入字符串的問(wèn)題到這里結(jié)束啦,希望可以解決您的問(wèn)題哈!