隨機(jī)輸出一個(gè)字符串,其實(shí)就是要隨機(jī)生成一個(gè)字符串并輸出。
成都創(chuàng)新互聯(lián)公司一直在為企業(yè)提供服務(wù),多年的磨煉,使我們?cè)趧?chuàng)意設(shè)計(jì),網(wǎng)絡(luò)營(yíng)銷推廣到技術(shù)研發(fā)擁有了開發(fā)經(jīng)驗(yàn)。我們擅長(zhǎng)傾聽企業(yè)需求,挖掘用戶對(duì)產(chǎn)品需求服務(wù)價(jià)值,為企業(yè)制作有用的創(chuàng)意設(shè)計(jì)體驗(yàn)。核心團(tuán)隊(duì)擁有超過10余年以上行業(yè)經(jīng)驗(yàn),涵蓋創(chuàng)意,策化,開發(fā)等專業(yè)領(lǐng)域,公司涉及領(lǐng)域有基礎(chǔ)互聯(lián)網(wǎng)服務(wù)服務(wù)器機(jī)柜租賃、成都app開發(fā)、手機(jī)移動(dòng)建站、網(wǎng)頁設(shè)計(jì)、網(wǎng)絡(luò)整合營(yíng)銷。
要實(shí)現(xiàn)這一點(diǎn),可以通過rand函數(shù)來實(shí)現(xiàn)。
具體示例代碼如下:
#include?stdio.h
#include?stdlib.h
#include?time.h
#define?STR_LEN?10//定義隨機(jī)輸出的字符串長(zhǎng)度。
#define?CHAR_MIN?'a'
#define?CHAR_MAX?'z'?//定義輸出隨機(jī)字符串每個(gè)字符的最大最小值。
int?main()
{
char?str[STR_LEN?+?1]?=?{0};
int?i;
srand(time(NULL));//通過時(shí)間函數(shù)設(shè)置隨機(jī)數(shù)種子,使得每次運(yùn)行結(jié)果隨機(jī)。
for(i?=?0;?i??STR_LEN;?i?++)
{
str[i]?=?rand()%(CHAR_MAX-CHAR_MIN?+?1)?+?CHAR_MIN;?//生成要求范圍內(nèi)的隨機(jī)數(shù)。
}
printf("%s\n",?str);//輸出生成的隨機(jī)數(shù)。
return?0;
}
以上代碼實(shí)現(xiàn)了隨機(jī)生成一個(gè)長(zhǎng)度為10,全部字符均為小寫英文字符的字符串并輸出。
核心語句為str[i] = rand()%(CHAR_MAX-CHAR_MIN + 1) + CHAR_MIN;
其中,
rand()獲取一個(gè)隨機(jī)數(shù),
rand()%(CHAR_MAX-CHAR_MIN + 1)使結(jié)果位于[0, CHAR_MAX-CHAR_MIN]之內(nèi)。這里利用了模除的特性。
這樣最終的結(jié)果就是位于[CHAR_MIN, CHAR_MAX]之間的字符了,從而實(shí)現(xiàn)控制生成隨機(jī)數(shù)據(jù)范圍的效果。
C語言提供了幾個(gè)標(biāo)準(zhǔn)庫(kù)函數(shù),可以將任意類型(整型、長(zhǎng)整型、浮點(diǎn)型等)的數(shù)字轉(zhuǎn)換為字符串。用itoa()()函數(shù)將整數(shù)轉(zhuǎn)換為字符串。
itoa()函數(shù)有3個(gè)參數(shù):第一個(gè)參數(shù)是要轉(zhuǎn)換的數(shù)字,第二個(gè)參數(shù)是要寫入轉(zhuǎn)換結(jié)果的目標(biāo)字符串,第三個(gè)參數(shù)是轉(zhuǎn)移數(shù)字時(shí)所用的基數(shù)。在上例中,轉(zhuǎn)換基數(shù)為10。
#include stdio.h
int main()
{
int a[4]={1,2,3,4};
char b[4];
for(int i=0;i4;i++)
b[i]=a[i];
for(int i=0;i4;i++)
printf("%c",b[i]);
return 0;
}
字符串在存儲(chǔ)上類似字符數(shù)組
它每一位單個(gè)元素都是能提取的,字符串的零位是它的長(zhǎng)度,如s[0]=10,這提供給我們很多方便,例如高精度運(yùn)算時(shí)每一位都能轉(zhuǎn)化為數(shù)字存入數(shù)組。
通常以串的整體作為操作對(duì)象,如:在串中查找某個(gè)子串、求取一個(gè)子串、在串的某個(gè)位置上插入一個(gè)子串以及刪除一個(gè)子串等。
兩個(gè)字符串相等的充要條件是:長(zhǎng)度相等,并且各個(gè)對(duì)應(yīng)位置上的字符都相等。設(shè)p、q是兩個(gè)串,求q在p中首次出現(xiàn)的位置的運(yùn)算叫做模式匹配。串的兩種最基本的存儲(chǔ)方式是順序存儲(chǔ)方式和鏈接存儲(chǔ)方式。
以上內(nèi)容參考:百度百科-字符串
int
iValue;//整型數(shù)
char
sz[10];//字符串
sprintf(sz,
"%d",
iValue);//這句需要頭文件#include
stdio.h
/*或者*/
itoa(iValue,
sz,
10);
//這句需要頭文件#include
ctype.h
sprintf類似于printf,printf比sprintf少第一個(gè)參數(shù),就是直接在輸出界面輸出相應(yīng)的東西,而sprintf就是將你要輸出的東西按相應(yīng)格式存放到第一個(gè)參數(shù)的字符串中。
itoa是直接將整型數(shù)轉(zhuǎn)化成字符串