版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 為了使字符或字符串的相關(guān)操作更方便簡潔,本系統(tǒng)設(shè)計了一個字符串函數(shù)包來實現(xiàn)常用的字符和字符串的處理。該軟件的主要功能是對字符串的比較、復(fù)制、拼接,判斷字符的類別,對字符串進行轉(zhuǎn)換,統(tǒng)計字符串中出現(xiàn)的指定字符或字符串,,把整數(shù)轉(zhuǎn)換到字符串中,把浮點數(shù)轉(zhuǎn)換成字符串,把字符串轉(zhuǎn)換成整數(shù)。</p><p>
2、該操作系統(tǒng)主要運用了幾個函數(shù):scanf,printf,puts,putc,getc,gets等,并結(jié)合指針來實現(xiàn)的。用戶可以根據(jù)清晰明確的提示信息選擇相應(yīng)的操作項目,進入每個系統(tǒng)后也可以根據(jù)提示信息實現(xiàn)需要的操作。本系統(tǒng)主要適合需要對字符或字符串進行處理的用戶。</p><p> 關(guān)鍵詞:字符串 浮點數(shù) 指針 操作系統(tǒng)</p><p><b> 課程設(shè)計任務(wù)書</b&
3、gt;</p><p> 設(shè)計題目:字符串函數(shù)包</p><p> 教研室主任: 指導(dǎo)教師:伍建全/雷亮/焦曉軍/陳應(yīng)祖/楊治明 2012年1月1日</p><p><b> 目 錄<
4、/b></p><p><b> 摘 要1</b></p><p><b> 課程設(shè)計任務(wù)書2</b></p><p> 1 軟件需求分析說明書5</p><p> 2 系統(tǒng)分析與設(shè)計6</p><p> 2.1 軟件界面設(shè)計6</p>
5、;<p> 2.2 軟件的數(shù)據(jù)(結(jié)構(gòu))設(shè)計6</p><p> 2.3軟件的算法設(shè)計6</p><p><b> 3 軟件的實現(xiàn)8</b></p><p><b> 4 軟件測試17</b></p><p> 5 軟件使用說明書21</p><p
6、><b> 致謝23</b></p><p><b> 參考文獻24</b></p><p><b> 附錄25</b></p><p> 1 軟件需求分析說明書</p><p> 該系統(tǒng)有十七個實現(xiàn)功能,進入界面后可以按提示的數(shù)字進行選擇功能,通過界面輸
7、入,可以在界面看到輸出內(nèi)容,并且所有結(jié)果都保存在當前文件XX.out中。</p><p><b> 該系統(tǒng)有以下功能</b></p><p> 1 判斷字符進行的類別</p><p> 2 兩個字符串的比較(整體或前幾個字符的比較)</p><p> 3 兩個字符串的復(fù)制(整體或前幾個字符的復(fù)制)</p&g
8、t;<p> 4 兩個字符串的拼接(整體或前幾個字符的拼接)</p><p><b> 5 求字符串的長度</b></p><p><b> 6 字符串的轉(zhuǎn)換</b></p><p> 7 整數(shù)轉(zhuǎn)換到字符串</p><p> 8 統(tǒng)計字符串中指定某子串出現(xiàn)的次數(shù)或首位置<
9、;/p><p> 9 判斷字符串中是否存在指定字符串的字符</p><p> 2 系統(tǒng)分析與設(shè)計</p><p> 2.1 軟件界面設(shè)計</p><p> 2.2 軟件數(shù)據(jù)(結(jié)構(gòu))設(shè)計</p><p> 本系統(tǒng)只運用了# include<stdio.h> 包頭文件,并將結(jié)果保存在當前文件XX. ou
10、t中,文件內(nèi)部一行為一個輸出結(jié)果。</p><p> 2.3 軟件的算法設(shè)計</p><p><b> 圖 2.1</b></p><p><b> 圖2.2</b></p><p><b> 圖2.3</b></p><p><b>
11、 3 軟件的實現(xiàn)</b></p><p> 本軟件主要運用了if語句,文件的輸出和幾個函數(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)//字符串前幾個字符的比較</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)//字符串前幾個字符的復(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)//字符串前幾個的拼接</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)//字符串的長度&
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)//浮點數(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> // 正負號 </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ù)點位置 </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> // 清除最后面的一個小數(shù)點 '.' </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ù)可以直接運算,結(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)計字符串中指定某子串出現(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)計字符串中指定某子串出現(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軟件的測試</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) //字符串前幾個字符的比較</p><p> void mystrcpy(char
71、 *s1,char *s2) //字符串的復(fù)制</p><p> void mystrncpy(char *s1,char *s2,int g) //字符串前幾個字符的復(fù)制</p><p> void mystrcat(char *s1,char *s2) //字符串的拼接</p><p> void mystrncat(char *s1,char
72、*s2,int g) //字符串前幾個字符的拼接</p><p> int mystrlen (char*s) //求字符串的長度</p><p> char * my_itof(double d, char* str) //浮點數(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)計字符串中指定某子串出現(xiàn)的次數(shù)</p><p> int mystrstr(char*s1,char*s2) //統(tǒng)計字符串中指定某子串出現(xiàn)的首位置</p><p>
74、; char *mystrptr(char *s1,char *s2) //判斷字符串中是否存在指定字符</p><p><b> 5 軟件使用說明書</b></p><p> 操作該系統(tǒng)主要是在界面內(nèi)選擇需要的功能,而且有的功能里有包含其他的功能進行選擇;一定要根據(jù)系統(tǒng)的提示來選擇。</p><p> 例如 如果你想將字符串中的大寫
75、字母變小寫,那么根據(jù)提示應(yīng)該按6,該系統(tǒng)就進入了字符串轉(zhuǎn)換系統(tǒng)</p><p> 然后根據(jù)所提示信息輸入數(shù)據(jù)(每次輸完數(shù)據(jù)按回車鍵后系統(tǒng)將會繼</p><p> 續(xù)運行),最后就可以得到需要操作的結(jié)果,并且所有的結(jié)果都保存在當前文件xx.out中。</p><p><b> 致謝</b></p><p> 非常感
76、謝雷亮老師和伍健全老師的幫助,還有我的室友劉春花、鄭欣儀、鄒田的幫助。謝謝!</p><p> 2011年 1月12日</p><p><b> 參考文獻</b></p><p> [1]何欽銘 顏暉.《C語言程序設(shè)計》.高等教育出版社.2008年</p><p> [2]譚浩強 張基溫.《C語言程序設(shè)計教程》.
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("請選擇你的操作類型:\n");</p><p> puts("1字符的判斷\t2字符串的比較\t3字符串的復(fù)制\n4字符串的拼接\t5字符串的長度\t6字符串的轉(zhuǎn)換\n7整數(shù)轉(zhuǎn)
84、換到字符\t 8浮點數(shù)轉(zhuǎn)換成字符\t9字符串轉(zhuǎn)換成整數(shù)\n10統(tǒng)計字符串中指定某子串出現(xiàn)的次數(shù)\n11統(tǒng)計字符串中指定某子串出現(xiàn)的首位置\n12判斷字符串中是否存在指定字符\n\n(注意:若選擇1,按回車鍵后直接輸入要判斷的字符。)");</p><p> puts("請輸入操作類型前面的數(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("...............歡迎進入字符串比較系統(tǒng)............ ");</p><p> puts("請輸入需要比較的兩個字符串\n第一個為:");</p><p> scanf("%s",s1);</p><p> puts(&quo
91、t;第二個為:");</p><p> scanf("%s",s2);</p><p> puts("比較整個字符串請按1,比較前幾個字符請按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("第一個字符串大\n");</p><p> fprintf(fpout,"第一個字符串大\n");}</p&g
93、t;<p> if(mystrcmp(s1,s2)==-1)</p><p> {printf("第二個字符串大\n");</p><p> fprintf(fpout,"第二個字符串大\n");}</p><p> if(mystrcmp(s1,s2)==0)</p><p>
94、 {printf("兩個字符串一樣\n");</p><p> fprintf(fpout,"兩個字符串一樣\n");}</p><p><b> }</b></p><p><b> if(m==2)</b></p><p><b>
95、{</b></p><p> puts("請輸入比較前幾個字符的值:");</p><p> scanf("%d",&g);</p><p> if(mystrncmp(s1,s2,g)==1)</p><p> { printf("第一個字符串前%d個字符大\n&
96、quot;,g);</p><p> fprintf(fpout,"第一個字符串前%d個字符大\n",g);}</p><p> if(mystrncmp(s1,s2,g)==-1)</p><p> {printf("第二個字符串前%d個字符大\n",g);</p><p> fprintf
97、(fpout,"第二個字符串前%d個字符大\n",g);}</p><p> if(mystrncmp(s1,s2,g)==0)</p><p> {printf("兩個字符串前%d個字符一樣\n",g);</p><p> fprintf(fpout,"兩個字符串前%d個字符一樣\n",g);}&
98、lt;/p><p><b> }</b></p><p><b> }</b></p><p><b> if(n==3)</b></p><p> { puts("...............歡迎進入字符串復(fù)制系統(tǒng)............ ");&l
99、t;/p><p> puts("請輸入需要的兩個字符串\n第一個為:");</p><p> scanf("%s",s1);</p><p> puts("第二個為:");</p><p> scanf("%s",s2);</p><p&g
100、t; puts("整個字符串復(fù)制請按1,前幾個字符復(fù)制請按2");</p><p> scanf("%d",&m);</p><p><b> if(m==1)</b></p><p><b> {</b></p><p> puts(&qu
101、ot;把第一個字符串復(fù)制給第二個請按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("請輸入需要
104、復(fù)制前幾個字符的值:");</p><p> scanf("%d",&g);</p><p> printf("把第一個字符串前幾個字符復(fù)制給第二個請按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("...............歡迎進入字符串拼接系
108、統(tǒng)............ ");</p><p> puts("請輸入需要的兩個字符串\n第一個為:");</p><p> scanf("%s",s1);</p><p> puts("第二個為:");</p><p> scanf("%s"
109、,s2);</p><p> puts("整個字符串拼接請按1,前幾個字符拼接請按2");</p><p> scanf("%d",&m);</p><p><b> if(m==1)</b></p><p><b> {</b></p&
110、gt;<p> puts("把第一個字符串拼接到第二個請按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("請輸入需要拼接前幾個字符的值:");</p><p> scanf("%d",&g);</p><p> printf("把第一個字符串前幾個字符拼接到第二個請按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、;...............歡迎進入字符串中實際字符技術(shù)系統(tǒng)............ ");</p><p> printf("請輸入字符串:");</p><p> scanf("%s",s1);</p><p> printf("該字符串長度為%d\n",mystrlen(s1));
118、</p><p> fprintf(fpout,"該字符長度為%d\n",mystrlen(s1));</p><p><b> }</b></p><p><b> if(n==6)</b></p><p><b> {</b></p>
119、<p> puts("...............歡迎進入字符串轉(zhuǎn)換系統(tǒng)............ ");</p><p> puts("請輸入字符串 :");</p><p> scanf("%s",s1);</p><p> puts("小寫轉(zhuǎn)大寫請按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("...............歡迎進入字符串轉(zhuǎn)換成整數(shù)系統(tǒng)............ ");<
124、;/p><p> printf("請輸入一個整數(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、..........歡迎進入浮點數(shù)轉(zhuǎn)換成字符系統(tǒng)............ ");</p><p> printf("請輸入一個浮點數(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("...............歡迎進入字符串轉(zhuǎn)換成整數(shù)系統(tǒng)............ ");</p><p> printf("請輸入字符串:\n");</p><p> scanf("%s",s1);</p><p> p
129、rintf("轉(zhuǎn)換后的10進制為%d 8進制%x16進制%o\n",my_strtoi(s1)); </p><p> fprintf(fpout,"轉(zhuǎn)換后的10進制為%d 8進制%x 16進制%o\n",my_strtoi(s1));</p><p><b> }</b></p><p>&
130、lt;b> if(n==10)</b></p><p> { puts("...............歡迎進入字符串統(tǒng)計系統(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、.....歡迎進入字符串出現(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個字符開始出現(xiàn)\n",a);</p><p> fprintf(fpout,"子串在第%d個字符開始出現(xiàn)\n",a);</p><p><b> }</b>
135、;</p><p><b> if(n==12)</b></p><p> { puts("...............歡迎進入字符是否存在系統(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) //字符串前幾個字符的比較</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) //字符串前幾個字符的復(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)//字符串前幾個的拼接</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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計--字符串類
- c++課程設(shè)計報告--字符串處理
- c課程設(shè)計---字符串處理系統(tǒng)
- 課程設(shè)計--- 字符串排序
- 課程設(shè)計--字符串類
- c++課程設(shè)計---字符串類的設(shè)計
- c語言字符串操作大全
- c語言題目 字符串比對
- 課程設(shè)計--字符串的操作
- c++課程設(shè)計實驗報告---字符串操作
- c++課程設(shè)計--字符串類的設(shè)計與實現(xiàn)
- 字符串處理系統(tǒng)課程設(shè)計
- C++課程設(shè)計實驗報告---字符串操作.doc
- php字符串操作函數(shù)
- 課程設(shè)計--查找字符串中的指定字符
- 課程設(shè)計--實現(xiàn)字符串的多種操作
- 微機課程設(shè)計--字符串動畫加速減速
- 匯編課程設(shè)計-字符串查找與替換
- 微機原理課程設(shè)計---字符串動畫顯示
- 微機原理課程設(shè)計--字符串分類統(tǒng)計
評論
0/150
提交評論