版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘 要</b></p><p> 為了使字符或字符串的相關(guān)操作更方便簡(jiǎn)潔,本系統(tǒng)設(shè)計(jì)了一個(gè)字符串函數(shù)包來實(shí)現(xiàn)常用的字符和字符串的處理。該軟件的主要功能是對(duì)字符串的比較、復(fù)制、拼接,判斷字符的類別,對(duì)字符串進(jìn)行轉(zhuǎn)換,統(tǒng)計(jì)字符串中出現(xiàn)的指定字符或字符串,,把整數(shù)轉(zhuǎn)換到字符串中,把浮點(diǎn)數(shù)轉(zhuǎn)換成字符串,把字符串轉(zhuǎn)換成整數(shù)。</p><p>
2、該操作系統(tǒng)主要運(yùn)用了幾個(gè)函數(shù):scanf,printf,puts,putc,getc,gets等,并結(jié)合指針來實(shí)現(xiàn)的。用戶可以根據(jù)清晰明確的提示信息選擇相應(yīng)的操作項(xiàng)目,進(jìn)入每個(gè)系統(tǒng)后也可以根據(jù)提示信息實(shí)現(xiàn)需要的操作。本系統(tǒng)主要適合需要對(duì)字符或字符串進(jìn)行處理的用戶。</p><p> 關(guān)鍵詞:字符串 浮點(diǎn)數(shù) 指針 操作系統(tǒng)</p><p><b> 課程設(shè)計(jì)任務(wù)書</b&
3、gt;</p><p> 設(shè)計(jì)題目:字符串函數(shù)包</p><p> 教研室主任: 指導(dǎo)教師:伍建全/雷亮/焦曉軍/陳應(yīng)祖/楊治明 2012年1月1日</p><p><b> 目 錄<
4、/b></p><p><b> 摘 要1</b></p><p><b> 課程設(shè)計(jì)任務(wù)書2</b></p><p> 1 軟件需求分析說明書5</p><p> 2 系統(tǒng)分析與設(shè)計(jì)6</p><p> 2.1 軟件界面設(shè)計(jì)6</p>
5、;<p> 2.2 軟件的數(shù)據(jù)(結(jié)構(gòu))設(shè)計(jì)6</p><p> 2.3軟件的算法設(shè)計(jì)6</p><p><b> 3 軟件的實(shí)現(xiàn)8</b></p><p><b> 4 軟件測(cè)試17</b></p><p> 5 軟件使用說明書21</p><p
6、><b> 致謝23</b></p><p><b> 參考文獻(xiàn)24</b></p><p><b> 附錄25</b></p><p> 1 軟件需求分析說明書</p><p> 該系統(tǒng)有十七個(gè)實(shí)現(xiàn)功能,進(jìn)入界面后可以按提示的數(shù)字進(jìn)行選擇功能,通過界面輸
7、入,可以在界面看到輸出內(nèi)容,并且所有結(jié)果都保存在當(dāng)前文件XX.out中。</p><p><b> 該系統(tǒng)有以下功能</b></p><p> 1 判斷字符進(jìn)行的類別</p><p> 2 兩個(gè)字符串的比較(整體或前幾個(gè)字符的比較)</p><p> 3 兩個(gè)字符串的復(fù)制(整體或前幾個(gè)字符的復(fù)制)</p&g
8、t;<p> 4 兩個(gè)字符串的拼接(整體或前幾個(gè)字符的拼接)</p><p><b> 5 求字符串的長(zhǎng)度</b></p><p><b> 6 字符串的轉(zhuǎn)換</b></p><p> 7 整數(shù)轉(zhuǎn)換到字符串</p><p> 8 統(tǒng)計(jì)字符串中指定某子串出現(xiàn)的次數(shù)或首位置<
9、;/p><p> 9 判斷字符串中是否存在指定字符串的字符</p><p> 2 系統(tǒng)分析與設(shè)計(jì)</p><p> 2.1 軟件界面設(shè)計(jì)</p><p> 2.2 軟件數(shù)據(jù)(結(jié)構(gòu))設(shè)計(jì)</p><p> 本系統(tǒng)只運(yùn)用了# include<stdio.h> 包頭文件,并將結(jié)果保存在當(dāng)前文件XX. ou
10、t中,文件內(nèi)部一行為一個(gè)輸出結(jié)果。</p><p> 2.3 軟件的算法設(shè)計(jì)</p><p><b> 圖 2.1</b></p><p><b> 圖2.2</b></p><p><b> 圖2.3</b></p><p><b>
11、 3 軟件的實(shí)現(xiàn)</b></p><p> 本軟件主要運(yùn)用了if語句,文件的輸出和幾個(gè)函數(shù)體來實(shí)現(xiàn)的。</p><p> 文件的輸出 fpout=fopen("XX.out","w");</p><p><b> 函數(shù)結(jié)構(gòu)體:</b></p><p> int
12、 mystrcmp(char *s1,char *s2)//字符串的比較</p><p><b> {</b></p><p> while(*s1!='\0'&& *s2!='\0')</p><p><b> {</b></p><p>
13、if(*s1>*s2)</p><p><b> return 1;</b></p><p> if(*s1<*s2)</p><p> return -1;</p><p> if(*s1==*s2)</p><p><b> {</b></p&
14、gt;<p><b> s1++;</b></p><p><b> s2++;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(*s1=='\0'&
15、;& *s2=='\0')</p><p><b> return 0;</b></p><p> if(*s1=='\0'&& *s2!='\0')</p><p> return -1;</p><p> if(*s1!='\0&
16、#39;&& *s2=='\0')</p><p><b> return 1;</b></p><p><b> }</b></p><p> int mystrncmp(char *s1,char *s2,int g)//字符串前幾個(gè)字符的比較</p><p&
17、gt;<b> {</b></p><p><b> int i=1;</b></p><p> while(*s1!='\0'&& *s2!='\0'&& i++<=g)</p><p><b> {</b></p&
18、gt;<p> if(*s1>*s2)</p><p><b> return 1;</b></p><p> if(*s1<*s2)</p><p> return -1;</p><p> if(*s1==*s2)</p><p><b> {&
19、lt;/b></p><p><b> s1++;</b></p><p><b> s2++;</b></p><p><b> }</b></p><p> if(*s1==*s2)</p><p><b> return
20、0;</b></p><p><b> }</b></p><p><b> }</b></p><p> void mystrcpy(char *s1,char *s2)//字符串的復(fù)制</p><p><b> {</b></p><
21、p> while(*s2!='\0')</p><p><b> {</b></p><p><b> *s1=*s2;</b></p><p><b> s1++;</b></p><p><b> s2++;</b>&l
22、t;/p><p><b> }</b></p><p><b> *s1='\0';</b></p><p><b> }</b></p><p> void mystrncpy(char *s1,char *s2,int g)//字符串前幾個(gè)字符的復(fù)制&l
23、t;/p><p><b> {</b></p><p><b> int i=1;</b></p><p> while(*s2!='\0'&& i++<=g)</p><p><b> {</b></p><p&g
24、t;<b> *s1=*s2;</b></p><p><b> s1++;</b></p><p><b> s2++;</b></p><p><b> }</b></p><p><b> *s1='\0';<
25、;/b></p><p><b> }</b></p><p> void mystrcat(char *s1,char *s2)//字符串的拼接</p><p><b> { </b></p><p> while (*s1!='\0')</p>&l
26、t;p><b> {s1++;}</b></p><p> while(*s2!='\0')</p><p><b> {</b></p><p><b> *s1=*s2;</b></p><p> s1++;s2++;</p>
27、<p><b> }</b></p><p><b> *s1='\0';</b></p><p><b> }</b></p><p> void mystrncat(char *s1,char *s2,int g)//字符串前幾個(gè)的拼接</p>&l
28、t;p><b> {</b></p><p><b> int i=1;</b></p><p> while(*s1!='\0')</p><p><b> {s1++;}</b></p><p> while(*s2!='\0'
29、;&& i++<=g)</p><p> {*s1=*s2;s1++;s2++;}</p><p><b> *s1='\0';</b></p><p><b> }</b></p><p> int mystrlen (char*s)//字符串的長(zhǎng)度&
30、lt;/p><p><b> {</b></p><p><b> int c=0;</b></p><p> while(*s!='\0')</p><p><b> {</b></p><p><b> c++;<
31、;/b></p><p><b> s++;</b></p><p><b> }</b></p><p><b> return c;</b></p><p><b> }</b></p><p> char *m
32、y_itoa(int a,char *s)//整數(shù)轉(zhuǎn)換到字符串</p><p> { int t,i,b;</p><p><b> char str;</b></p><p> for(i=0;a>0;i++)</p><p><b> {</b></p><
33、;p><b> t=a%10;</b></p><p> s[i]=t+48;</p><p><b> a=a/10;</b></p><p><b> }</b></p><p> s[i]='\0';</p><p>
34、; if(i%2!=0)</p><p><b> {</b></p><p> for(b=1;b<=i/2+1;b++,i--)</p><p><b> {</b></p><p> str=s[b-1];</p><p> s[b-1]=s[i-1]
35、;</p><p> s[i-1]=str;</p><p><b> }</b></p><p><b> }</b></p><p> if(i%2==0)</p><p><b> {</b></p><p>
36、for(b=1;b<=i/2+1;b++,i--)</p><p><b> {</b></p><p> str=s[a-1];</p><p> s[a-1]=s[i-1];</p><p> s[i-1]=str;</p><p><b> }</b>&
37、lt;/p><p><b> }</b></p><p><b> return s;</b></p><p><b> } </b></p><p> char * my_itof(double d, char* str)//浮點(diǎn)數(shù)轉(zhuǎn)換成字符串</p>&
38、lt;p><b> { </b></p><p> char str1[40]; </p><p> int i,j=0; </p><p> int index=0; </p><p> int dotPos = 0; </p><p> unsigned long
39、num; </p><p> // 正負(fù)號(hào) </p><p> if ( d < 0 ) </p><p><b> { </b></p><p> str[index++] = '-'; </p><p> d = 0 - d; </p>
40、;<p><b> } </b></p><p> // 判斷小數(shù)點(diǎn)位置 </p><p> for (i=0; i<10; i++) </p><p><b> { </b></p><p> if (d >= 1) </p><
41、;p><b> { </b></p><p> d = d / 10; </p><p> dotPos += 1; </p><p><b> } </b></p><p> else if (d < 0.1) </p><p><b&
42、gt; { </b></p><p> d = d * 10; </p><p> dotPos -= 1; </p><p><b> } </b></p><p><b> else </b></p><p><b> brea
43、k; </b></p><p><b> } </b></p><p> for (i=0; i<7; i++) </p><p> d *= 10; </p><p> num = (unsigned long)(d + 0.5); </p><p> wh
44、ile ( num>0 ) </p><p><b> { </b></p><p> str1[j++] = (char)num%10+'0'; // 0098651 098651 </p><p> num /= 10; </p><p><b>
45、} </b></p><p> if (dotPos < 1) </p><p><b> { </b></p><p> str[index++] = '0'; </p><p> str[index++] = '.'; </p><
46、;p> for (i=0; i<0-dotPos; i++) </p><p> str[index++] = '0'; </p><p> for (i=0; i<j; i++) </p><p> str[index++] = str1[j-1-i]; </p><p><
47、b> } </b></p><p><b> else </b></p><p><b> { </b></p><p> for (i=0; i<dotPos; i++) </p><p> str[index++] = str1[j-1-i]; <
48、;/p><p> str[index++] = '.'; </p><p> for (; i<j; i++) </p><p> str[index++] = str1[j-1-i]; </p><p><b> } </b></p><p> // 清
49、零 </p><p> while ( str[--index]=='0' ); </p><p> index++; </p><p> // 清除最后面的一個(gè)小數(shù)點(diǎn) '.' </p><p> while ( str[--index]=='.' );
50、</p><p> str[++index] = '\0'; </p><p> return(str); </p><p><b> } </b></p><p> long fun(char s[])</p><p><b> {</b>&
51、lt;/p><p><b> int i;</b></p><p> while(s[i]!='\0')</p><p><b> {</b></p><p> s[i]=s[i]-48; //48為字符‘0’的ASCII碼,</p><p> /
52、/ 字符和整形數(shù)可以直接運(yùn)算,結(jié)果為整數(shù)輸出數(shù)組用%d就可以 </p><p><b> i++;</b></p><p><b> }</b></p><p><b> }</b></p><p> int my_strtoi(char *s) /
53、/字符串轉(zhuǎn)換成整數(shù)</p><p> { int a,h=0;</p><p> while(*s!='\0')</p><p><b> {</b></p><p><b> a=*s-'0';</b></p><p><b
54、> h=h*10+a;</b></p><p><b> s++;</b></p><p><b> }</b></p><p><b> return h;</b></p><p><b> }</b></p>
55、<p> void mystrlow(char*s)//大寫字符變小寫</p><p><b> {</b></p><p> while(*s!='\0')</p><p><b> {</b></p><p> if(*s>='A'&am
56、p;& *s<='z')</p><p> { *s+=32;}</p><p><b> s++;</b></p><p><b> }</b></p><p><b> }</b></p><p> void
57、mystrupr(char*s)//小寫字符變大寫</p><p><b> {</b></p><p> while(*s!='\0')</p><p><b> {</b></p><p> if(*s>='a'&& *s<=&
58、#39;z')</p><p> { *s-=32;}</p><p><b> s++;</b></p><p><b> }</b></p><p><b> }</b></p><p> int mystrstrcount(ch
59、ar*s1,char*s2)//統(tǒng)計(jì)字符串中指定某子串出現(xiàn)的次數(shù)</p><p><b> {</b></p><p> int len2=mystrlen(s2);</p><p> int len1=mystrlen(s1);</p><p> int i,j,count1=0,count2=0;</p
60、><p> for(i=0;i+len2<len1;i++,count1=0)</p><p><b> {</b></p><p> for(j=0;j<len2;j++)</p><p><b> {</b></p><p> if(*(s1+i+j)=
61、=*(s2+j))</p><p><b> count1++;</b></p><p><b> }</b></p><p> if(count1==len2)</p><p><b> count2++;</b></p><p><b&
62、gt; count1=0;</b></p><p><b> }</b></p><p> return count2;</p><p><b> }</b></p><p> int mystrstr(char*s1,char*s2)//統(tǒng)計(jì)字符串中指定某子串出現(xiàn)的首位置&l
63、t;/p><p><b> {</b></p><p> int len2=mystrlen(s2);</p><p> int len1=mystrlen(s1);</p><p> int i,j,count1=0,count2=0;</p><p> for(i=0;i+len2<
64、;len1;i++,count1=0)</p><p><b> {</b></p><p> for(j=0;j<len2;j++)</p><p><b> {</b></p><p> if(*(s1+i+j)==*(s2+j))</p><p><
65、b> count1++;</b></p><p><b> }</b></p><p> if(count1==len2)</p><p> return i+j-len2+1;</p><p><b> }</b></p><p><b&g
66、t; }</b></p><p> char *mystrptr(char *s1,char *s2)//判斷字符串中是否存在指定字符</p><p><b> {</b></p><p><b> char *p;</b></p><p> while(*s1!='\
67、0')</p><p><b> {</b></p><p><b> p=s2;</b></p><p> while(*p!='\0')</p><p><b> {</b></p><p> if(*s1==*p)
68、</p><p><b> {</b></p><p> return(char*)s1;</p><p><b> }</b></p><p><b> p++;</b></p><p><b> }</b></p
69、><p><b> s1++;</b></p><p><b> }</b></p><p> return NULL;</p><p><b> }</b></p><p><b> 4軟件的測(cè)試</b></p>
70、<p><b> 1字符的判斷</b></p><p> int mystrcmp(char *s1,char *s2) //字符串的比較</p><p> int mystrncmp(char *s1,char *s2,int g) //字符串前幾個(gè)字符的比較</p><p> void mystrcpy(char
71、 *s1,char *s2) //字符串的復(fù)制</p><p> void mystrncpy(char *s1,char *s2,int g) //字符串前幾個(gè)字符的復(fù)制</p><p> void mystrcat(char *s1,char *s2) //字符串的拼接</p><p> void mystrncat(char *s1,char
72、*s2,int g) //字符串前幾個(gè)字符的拼接</p><p> int mystrlen (char*s) //求字符串的長(zhǎng)度</p><p> char * my_itof(double d, char* str) //浮點(diǎn)數(shù)轉(zhuǎn)換成字符串</p><p> void mystrupr(char*s) //字符串中的字符小寫變大寫</p>
73、;<p> void mystrlow(char*s) //字符串中的字符大寫變小寫</p><p> nt mystrstrcount(char*s1,char*s2) //統(tǒng)計(jì)字符串中指定某子串出現(xiàn)的次數(shù)</p><p> int mystrstr(char*s1,char*s2) //統(tǒng)計(jì)字符串中指定某子串出現(xiàn)的首位置</p><p>
74、; char *mystrptr(char *s1,char *s2) //判斷字符串中是否存在指定字符</p><p><b> 5 軟件使用說明書</b></p><p> 操作該系統(tǒng)主要是在界面內(nèi)選擇需要的功能,而且有的功能里有包含其他的功能進(jìn)行選擇;一定要根據(jù)系統(tǒng)的提示來選擇。</p><p> 例如 如果你想將字符串中的大寫
75、字母變小寫,那么根據(jù)提示應(yīng)該按6,該系統(tǒng)就進(jìn)入了字符串轉(zhuǎn)換系統(tǒng)</p><p> 然后根據(jù)所提示信息輸入數(shù)據(jù)(每次輸完數(shù)據(jù)按回車鍵后系統(tǒng)將會(huì)繼</p><p> 續(xù)運(yùn)行),最后就可以得到需要操作的結(jié)果,并且所有的結(jié)果都保存在當(dāng)前文件xx.out中。</p><p><b> 致謝</b></p><p> 非常感
76、謝雷亮老師和伍健全老師的幫助,還有我的室友劉春花、鄭欣儀、鄒田的幫助。謝謝!</p><p> 2011年 1月12日</p><p><b> 參考文獻(xiàn)</b></p><p> [1]何欽銘 顏暉.《C語言程序設(shè)計(jì)》.高等教育出版社.2008年</p><p> [2]譚浩強(qiáng) 張基溫.《C語言程序設(shè)計(jì)教程》.
77、高等教育出版社.2006年</p><p><b> 附錄</b></p><p> # include <stdio.h></p><p> int mystrcmp(char *s1,char *s2);</p><p> int mystrncmp(char *s1,char *s2,int g
78、);</p><p> void mystrcpy(char *s1,char *s2);</p><p> void mystrncpy(char *s1,char *s2,int g);</p><p> void mystrcat(char *s1,char *s2);</p><p> void mystrncat(char
79、*s1,char *s2,int g);</p><p> int mystrlen (char*s);</p><p> char *my_itoa(int a,char *s);</p><p> char * my_itof(double d, char* str); </p><p> int my_strtoi(char
80、*s);</p><p> void mystrlow(char*s);</p><p> void mystrupr(char*s);</p><p> int mystrstrcount(char*s1,char*s2);</p><p> int mystrstr(char*s1,char*s2);</p><
81、;p> char *mystrptr(char *s1,char *s2);</p><p> int main()</p><p><b> {</b></p><p> FILE *fpout;</p><p><b> double d;</b></p><
82、p> char s1[30];char s2[30];</p><p> int n,m,g,h,count,a;</p><p><b> char ch;</b></p><p> fpout=fopen("XX.out","w");</p><p> puts
83、("........................歡迎使用字符串函數(shù)包!.......................\n");</p><p> puts("請(qǐng)選擇你的操作類型:\n");</p><p> puts("1字符的判斷\t2字符串的比較\t3字符串的復(fù)制\n4字符串的拼接\t5字符串的長(zhǎng)度\t6字符串的轉(zhuǎn)換\n7整數(shù)轉(zhuǎn)
84、換到字符\t 8浮點(diǎn)數(shù)轉(zhuǎn)換成字符\t9字符串轉(zhuǎn)換成整數(shù)\n10統(tǒng)計(jì)字符串中指定某子串出現(xiàn)的次數(shù)\n11統(tǒng)計(jì)字符串中指定某子串出現(xiàn)的首位置\n12判斷字符串中是否存在指定字符\n\n(注意:若選擇1,按回車鍵后直接輸入要判斷的字符。)");</p><p> puts("請(qǐng)輸入操作類型前面的數(shù)字:"); </p><p> scanf("%d
85、",&n);</p><p><b> if(n==1)</b></p><p> { scanf("\n");</p><p> scanf("%c",&ch);</p><p> if(ch>='a'&&
86、; ch<='z')</p><p><b> {</b></p><p> printf("該字符為英文小寫字母\n");</p><p> fprintf(fpout,"該字符為英文小寫字母\n");</p><p><b> }<
87、/b></p><p> if(ch>='A'&& ch<='Z')</p><p><b> {</b></p><p> printf("該字符為英文大寫字母\n");</p><p> fprintf(fpout,&quo
88、t;該字符為英文大寫字母\n");</p><p><b> }</b></p><p> if(ch>='1'&& ch<='9')</p><p><b> {</b></p><p> printf("該字
89、符為數(shù)字字符\n");</p><p> fprintf(fpout,"該字符為數(shù)字字符\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> if(n==2)</b></p&
90、gt;<p> { puts("...............歡迎進(jìn)入字符串比較系統(tǒng)............ ");</p><p> puts("請(qǐng)輸入需要比較的兩個(gè)字符串\n第一個(gè)為:");</p><p> scanf("%s",s1);</p><p> puts(&quo
91、t;第二個(gè)為:");</p><p> scanf("%s",s2);</p><p> puts("比較整個(gè)字符串請(qǐng)按1,比較前幾個(gè)字符請(qǐng)按2");</p><p> scanf("%d",&m);</p><p><b> if(m==1)&l
92、t;/b></p><p><b> {</b></p><p> if(mystrcmp(s1,s2)==1)</p><p> { printf("第一個(gè)字符串大\n");</p><p> fprintf(fpout,"第一個(gè)字符串大\n");}</p&g
93、t;<p> if(mystrcmp(s1,s2)==-1)</p><p> {printf("第二個(gè)字符串大\n");</p><p> fprintf(fpout,"第二個(gè)字符串大\n");}</p><p> if(mystrcmp(s1,s2)==0)</p><p>
94、 {printf("兩個(gè)字符串一樣\n");</p><p> fprintf(fpout,"兩個(gè)字符串一樣\n");}</p><p><b> }</b></p><p><b> if(m==2)</b></p><p><b>
95、{</b></p><p> puts("請(qǐng)輸入比較前幾個(gè)字符的值:");</p><p> scanf("%d",&g);</p><p> if(mystrncmp(s1,s2,g)==1)</p><p> { printf("第一個(gè)字符串前%d個(gè)字符大\n&
96、quot;,g);</p><p> fprintf(fpout,"第一個(gè)字符串前%d個(gè)字符大\n",g);}</p><p> if(mystrncmp(s1,s2,g)==-1)</p><p> {printf("第二個(gè)字符串前%d個(gè)字符大\n",g);</p><p> fprintf
97、(fpout,"第二個(gè)字符串前%d個(gè)字符大\n",g);}</p><p> if(mystrncmp(s1,s2,g)==0)</p><p> {printf("兩個(gè)字符串前%d個(gè)字符一樣\n",g);</p><p> fprintf(fpout,"兩個(gè)字符串前%d個(gè)字符一樣\n",g);}&
98、lt;/p><p><b> }</b></p><p><b> }</b></p><p><b> if(n==3)</b></p><p> { puts("...............歡迎進(jìn)入字符串復(fù)制系統(tǒng)............ ");&l
99、t;/p><p> puts("請(qǐng)輸入需要的兩個(gè)字符串\n第一個(gè)為:");</p><p> scanf("%s",s1);</p><p> puts("第二個(gè)為:");</p><p> scanf("%s",s2);</p><p&g
100、t; puts("整個(gè)字符串復(fù)制請(qǐng)按1,前幾個(gè)字符復(fù)制請(qǐng)按2");</p><p> scanf("%d",&m);</p><p><b> if(m==1)</b></p><p><b> {</b></p><p> puts(&qu
101、ot;把第一個(gè)字符串復(fù)制給第二個(gè)請(qǐng)按1,反之按2");</p><p> scanf("%d",&h);</p><p><b> if(h==1)</b></p><p> { mystrcpy(s2,s1);</p><p> printf("復(fù)制后的字符串
102、為:%s\n",s2);</p><p> fprintf(fpout,"復(fù)制后的字符串為:%s\n",s2);}</p><p><b> if(h==2)</b></p><p> { mystrcpy(s1,s2);</p><p> printf("復(fù)制后的字符
103、串為:%s\n",s1);</p><p> fprintf(fpout,"復(fù)制后的字符串為:%s\n",s1);}</p><p><b> }</b></p><p><b> if(m==2)</b></p><p> {puts("請(qǐng)輸入需要
104、復(fù)制前幾個(gè)字符的值:");</p><p> scanf("%d",&g);</p><p> printf("把第一個(gè)字符串前幾個(gè)字符復(fù)制給第二個(gè)請(qǐng)按1,反之按2");</p><p> scanf("%d",&h);</p><p><b&g
105、t; if(h==1)</b></p><p> { mystrncpy(s2,s1,g);</p><p> printf("復(fù)制后的字符串為:%s\n",s2);</p><p> fprintf(fpout,"復(fù)制后的字符串為:%s\n",s2);}</p><p><
106、;b> if(h==2)</b></p><p> { mystrncpy(s1,s2,g);</p><p> printf("復(fù)制后的字符串為:%s\n",s1);</p><p> fprintf(fpout,"復(fù)制后的字符串為:%s\n",s1);}</p><p>
107、;<b> }</b></p><p><b> }</b></p><p><b> if(n==4)</b></p><p><b> { </b></p><p> puts("...............歡迎進(jìn)入字符串拼接系
108、統(tǒng)............ ");</p><p> puts("請(qǐng)輸入需要的兩個(gè)字符串\n第一個(gè)為:");</p><p> scanf("%s",s1);</p><p> puts("第二個(gè)為:");</p><p> scanf("%s"
109、,s2);</p><p> puts("整個(gè)字符串拼接請(qǐng)按1,前幾個(gè)字符拼接請(qǐng)按2");</p><p> scanf("%d",&m);</p><p><b> if(m==1)</b></p><p><b> {</b></p&
110、gt;<p> puts("把第一個(gè)字符串拼接到第二個(gè)請(qǐng)按1,反之按2");</p><p> scanf("%d",&h);</p><p><b> if(h==1)</b></p><p> { mystrcat(s2,s1);</p><p&g
111、t; printf("拼接后的字符串為:%s\n",s2);</p><p> fprintf(fpout,"拼接后的字符串為:%s\n",s2);}</p><p><b> if(h==2)</b></p><p> { mystrcat(s1,s2);</p><p&
112、gt; printf("拼接后的字符串為:%s\n",s1);</p><p> fprintf(fpout,"拼接后的字符串為:%s\n",s1);}</p><p><b> }</b></p><p><b> if(m==2)</b></p><p
113、> {puts("請(qǐng)輸入需要拼接前幾個(gè)字符的值:");</p><p> scanf("%d",&g);</p><p> printf("把第一個(gè)字符串前幾個(gè)字符拼接到第二個(gè)請(qǐng)按1,反之按2\n");</p><p> scanf("%d",&h);&l
114、t;/p><p><b> if(h==1)</b></p><p> { mystrncat(s2,s1,g);</p><p> printf("拼接后的字符串為:%s\n",s2);</p><p> fprintf(fpout,"拼接后的字符串為:%s\n",s2)
115、;}</p><p><b> if(h==2)</b></p><p> { mystrncat(s1,s2,g);</p><p> printf("拼接后的字符串為:%s\n",s1);</p><p> fprintf(fpout,"拼接后的字符串為:%s\n"
116、,s1);}</p><p><b> }</b></p><p><b> }</b></p><p><b> if(n==5)</b></p><p><b> { </b></p><p> puts("
117、;...............歡迎進(jìn)入字符串中實(shí)際字符技術(shù)系統(tǒng)............ ");</p><p> printf("請(qǐng)輸入字符串:");</p><p> scanf("%s",s1);</p><p> printf("該字符串長(zhǎng)度為%d\n",mystrlen(s1));
118、</p><p> fprintf(fpout,"該字符長(zhǎng)度為%d\n",mystrlen(s1));</p><p><b> }</b></p><p><b> if(n==6)</b></p><p><b> {</b></p>
119、<p> puts("...............歡迎進(jìn)入字符串轉(zhuǎn)換系統(tǒng)............ ");</p><p> puts("請(qǐng)輸入字符串 :");</p><p> scanf("%s",s1);</p><p> puts("小寫轉(zhuǎn)大寫請(qǐng)按1,反之按2\n&q
120、uot;);</p><p> scanf("%d",&m);</p><p><b> if(m==1)</b></p><p><b> {</b></p><p> mystrupr(s1);</p><p> printf(&qu
121、ot;轉(zhuǎn)換后的字符串為:%s\n",s1);</p><p> fprintf(fpout,"轉(zhuǎn)換后的字符串為:%s\n",s1);</p><p><b> }</b></p><p><b> if(m==2)</b></p><p><b> {
122、</b></p><p> mystrlow(s1);</p><p> printf("轉(zhuǎn)換后的字符串為:%s\n",s1);</p><p> fprintf(fpout,"轉(zhuǎn)換后的字符串為:%s\n",s1);</p><p><b> }</b><
123、/p><p><b> }</b></p><p><b> if(n==7)</b></p><p><b> {</b></p><p> puts("...............歡迎進(jìn)入字符串轉(zhuǎn)換成整數(shù)系統(tǒng)............ ");<
124、;/p><p> printf("請(qǐng)輸入一個(gè)整數(shù):\n");</p><p> scanf("%d",&m);</p><p> my_itoa(m,s1);</p><p> printf("轉(zhuǎn)換成的字符串為%s\n",s1);</p><p>
125、 fprintf(fpout,"轉(zhuǎn)換成的字符串為%s\n",s1);</p><p><b> }</b></p><p><b> if(n==8)</b></p><p><b> {</b></p><p> puts(".....
126、..........歡迎進(jìn)入浮點(diǎn)數(shù)轉(zhuǎn)換成字符系統(tǒng)............ ");</p><p> printf("請(qǐng)輸入一個(gè)浮點(diǎn)數(shù):\n");</p><p> scanf("%lf",&d);</p><p> my_itof(d,s1);</p><p> printf(
127、"轉(zhuǎn)換成的字符串為%s\n",s1);</p><p> fprintf(fpout,"轉(zhuǎn)換成的字符串為%s\n",s1);</p><p><b> }</b></p><p><b> if(n==9)</b></p><p><b>
128、{</b></p><p> puts("...............歡迎進(jìn)入字符串轉(zhuǎn)換成整數(shù)系統(tǒng)............ ");</p><p> printf("請(qǐng)輸入字符串:\n");</p><p> scanf("%s",s1);</p><p> p
129、rintf("轉(zhuǎn)換后的10進(jìn)制為%d 8進(jìn)制%x16進(jìn)制%o\n",my_strtoi(s1)); </p><p> fprintf(fpout,"轉(zhuǎn)換后的10進(jìn)制為%d 8進(jìn)制%x 16進(jìn)制%o\n",my_strtoi(s1));</p><p><b> }</b></p><p>&
130、lt;b> if(n==10)</b></p><p> { puts("...............歡迎進(jìn)入字符串統(tǒng)計(jì)系統(tǒng)............ ");</p><p> puts("輸入字符串:");</p><p> scanf("%s",s1);</p>
131、<p> puts("輸入子串:");</p><p> scanf("%s",s2);</p><p> count=mystrstrcount(s1,s2);</p><p> printf("出現(xiàn)次數(shù)為%d\n",count);</p><p> fprin
132、tf(fpout,"出現(xiàn)次數(shù)為%d\n",count);</p><p><b> }</b></p><p><b> if(n==11)</b></p><p><b> { </b></p><p> puts("..........
133、.....歡迎進(jìn)入字符串出現(xiàn)系統(tǒng)............ ");</p><p> puts("輸入字符串:");</p><p> scanf("%s",s1);</p><p> puts("輸入子串:");</p><p> scanf("%s&qu
134、ot;,s2);</p><p> a=mystrstr(s1,s2);</p><p> printf("子串在第%d個(gè)字符開始出現(xiàn)\n",a);</p><p> fprintf(fpout,"子串在第%d個(gè)字符開始出現(xiàn)\n",a);</p><p><b> }</b>
135、;</p><p><b> if(n==12)</b></p><p> { puts("...............歡迎進(jìn)入字符是否存在系統(tǒng)............ ");</p><p> puts("輸入被找字符串:");</p><p> scanf(&qu
136、ot;%s",s1);</p><p> puts("輸入要找字符的字符串:");</p><p> scanf("%s",s2);</p><p> if(mystrptr(s1,s2)!=NULL)</p><p> {printf("存在!");</p
137、><p> fprintf(fpout,"存在!");}</p><p> else {printf("不存在!");</p><p> fprintf(fpout,"不存在!");}</p><p><b> }</b></p><p&
138、gt; Fclose(fpout);</p><p><b> return 0;</b></p><p><b> }</b></p><p> int mystrcmp(char *s1,char *s2) //字符串的比較</p><p><b> {</b>
139、;</p><p> while(*s1!='\0'&& *s2!='\0')</p><p><b> {</b></p><p> if(*s1>*s2)</p><p><b> return 1;</b></p>&
140、lt;p> if(*s1<*s2)</p><p> return -1;</p><p> if(*s1==*s2)</p><p><b> {</b></p><p><b> s1++;</b></p><p><b> s2++;&
141、lt;/b></p><p><b> }</b></p><p><b> }</b></p><p> if(*s1=='\0'&& *s2=='\0')</p><p><b> return 0;</b>&l
142、t;/p><p> if(*s1=='\0'&& *s2!='\0')</p><p> return -1;</p><p> if(*s1!='\0'&& *s2=='\0')</p><p><b> return 1;<
143、/b></p><p><b> }</b></p><p> int mystrncmp(char *s1,char *s2,int g) //字符串前幾個(gè)字符的比較</p><p><b> {</b></p><p><b> int i=1;</b>&
144、lt;/p><p> while(*s1!='\0'&& *s2!='\0'&& i++<=g)</p><p><b> {</b></p><p> if(*s1>*s2)</p><p><b> return 1;</
145、b></p><p> if(*s1<*s2)</p><p> return -1;</p><p> if(*s1==*s2)</p><p><b> {</b></p><p><b> s1++;</b></p><p>
146、;<b> s2++;</b></p><p><b> }</b></p><p> if(*s1==*s2)</p><p><b> return 0;</b></p><p><b> }</b></p><p>
147、<b> }</b></p><p> void mystrcpy(char *s1,char *s2) //字符串的復(fù)制</p><p><b> {</b></p><p> while(*s2!='\0')</p><p><b> {</b>&
148、lt;/p><p><b> *s1=*s2;</b></p><p><b> s1++;</b></p><p><b> s2++;</b></p><p><b> }</b></p><p><b> *s
149、1='\0';</b></p><p><b> }</b></p><p> void mystrncpy(char *s1,char *s2,int g) //字符串前幾個(gè)字符的復(fù)制</p><p><b> {</b></p><p><b> i
150、nt i=1;</b></p><p> while(*s2!='\0'&& i++<=g)</p><p><b> {</b></p><p><b> *s1=*s2;</b></p><p><b> s1++;</b
151、></p><p><b> s2++;</b></p><p><b> }</b></p><p><b> *s1='\0';</b></p><p><b> }</b></p><p> v
152、oid mystrcat(char *s1,char *s2)//字符串的拼接</p><p><b> { </b></p><p> while (*s1!='\0')</p><p><b> {s1++;}</b></p><p> while(*s2!='
153、\0')</p><p><b> {</b></p><p><b> *s1=*s2;</b></p><p> s1++;s2++;</p><p><b> }</b></p><p><b> *s1='\0
154、';</b></p><p><b> }</b></p><p> void mystrncat(char *s1,char *s2,int g)//字符串前幾個(gè)的拼接</p><p><b> {</b></p><p><b> int i=1;</
155、b></p><p> while(*s1!='\0')</p><p><b> {s1++;}</b></p><p> while(*s2!='\0'&& i++<=g)</p><p> {*s1=*s2;s1++;s2++;}</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計(jì)--字符串類
- c++課程設(shè)計(jì)報(bào)告--字符串處理
- c課程設(shè)計(jì)---字符串處理系統(tǒng)
- 課程設(shè)計(jì)--- 字符串排序
- 課程設(shè)計(jì)--字符串類
- c++課程設(shè)計(jì)---字符串類的設(shè)計(jì)
- c語言字符串操作大全
- c語言題目 字符串比對(duì)
- 課程設(shè)計(jì)--字符串的操作
- c++課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告---字符串操作
- c++課程設(shè)計(jì)--字符串類的設(shè)計(jì)與實(shí)現(xiàn)
- 字符串處理系統(tǒng)課程設(shè)計(jì)
- C++課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告---字符串操作.doc
- php字符串操作函數(shù)
- 課程設(shè)計(jì)--查找字符串中的指定字符
- 課程設(shè)計(jì)--實(shí)現(xiàn)字符串的多種操作
- 微機(jī)課程設(shè)計(jì)--字符串動(dòng)畫加速減速
- 匯編課程設(shè)計(jì)-字符串查找與替換
- 微機(jī)原理課程設(shè)計(jì)---字符串動(dòng)畫顯示
- 微機(jī)原理課程設(shè)計(jì)--字符串分類統(tǒng)計(jì)
評(píng)論
0/150
提交評(píng)論