#includelt;stdio.hgt;
創新互聯專注網站設計,以設計驅動企業價值的持續增長,網站,看似簡單卻每一個企業都需要——設計,看似簡潔卻是每一位設計師的心血 十載來,我們只專注做網站。認真對待每一個客戶,我們不用口頭的語言來吹擂我們的優秀,近1000家的成功案例見證著我們的成長。
#includelt;stdlib.hgt;
int findsub(char*src,char*s)
{
char*ptr=src,*p=s;//定義兩個指針
char*ptr2=src+strlen(src),*prev=NULL;//ptr2為src的末位置指針
int len=strlen(s),n=0;//子串的長度和計數器
for(;*ptr;ptr++)//循環整個串
{
if(ptr2-ptrlt;len)//如果一開始子串就大于src,則退出
break;
for(prev=ptr;*prev==*p;prev++,p++)//尋找第一個相等的位置,然后從此位置開始匹配子串
{
if(*(p+1)==0||*(p+1)==10)//如果已經到了子串的末尾
{
n++;//自增
p=s;//重新指向子串
break;//退出
}
}
}
return n;
}
int main(void)
{
char a[81],b[81];//定義兩個字符數組
printf("輸入原字符串:");
fgets(a,81,stdin);//輸入
printf("輸入子字符串:");
fgets(b,81,stdin);
printf("找到:%d\n",findsub(a,b));
system("pause");
return 0;
}
擴展資料:
①printf()函數是格式化輸出函數,一般用于向標準輸出設備按規定格式輸出信息。
格式輸出,它是c語言中產生格式化輸出的函數(在stdio.h中定義)。用于向終端(顯示器、控制臺等)輸出字符。格式控制由要輸出的文字和數據格式說明組成。
要輸出的文字除了可以使用字母、數字、空格和一些數字符號以外,還可以使用一些轉義字符表示特殊的含義。
簡單點理解就是,在一段程序中你正確使用該函數,可以在該程序運行的時候輸出你所需要的內容。
②printf函數是一個標準庫函數,它的函數原型在頭文件“stdio.h”中。但作為一個特例,不要求在使用printf函數之前必須包含stdio.h文件。
printf()函數的調用格式為:printf("lt;格式化字符串gt;",lt;參量表gt;)。
其中格式化字符串用于指定輸出格式。格式控制串可由格式字符串和非格式字符串兩種組成。
#includelt;stdio.hgt;
void TongJi(char s[])
{
int ZiMu=0,KongGe=0,ShuZi=0,QiTa=0,i;
for(i=0;slt;igt;!='\0';i++)
{
if(slt;igt;==32)KongGe++;
else if((slt;igt;gt;=48)(slt;igt;lt;=57))ShuZi++;
else if(((slt;igt;gt;=97)(slt;igt;lt;=122))||((slt;igt;gt;=65)(slt;igt;lt;=90)))ZiMu++;
else QiTa++;
}
printf("空格:%d;數字:%d;字母:%d;其他:%d。\n",KongGe,ShuZi,ZiMu,QiTa);
}
int main()
{
char s[100];
printf("請輸入:");
gets(s);
TongJi(s);
return 0;
}
擴展資料:
return用法
C++的關鍵字,它提供了終止函數執行的一種方式。當return語句提供了一個值時,這個值就成為函數的返回值.
說到return,有必要提及主函數的定義,下面是從網絡上找到的資料,好好消化吧,對了解主函數中返回值的理解有很大的幫助.
很多人甚至市面上的一些書籍,都使用了void main(),其實這是錯誤的。C/C++中從來沒有定義過void main()。
C++之父Bjarne Stroustrup在他的主頁上的FAQ中明確地寫著The definition void main(){/*...*/}is not and never has been C++,
nor has it even been C.(void main()從來就不存在于C++或者C)。下面我分別說一下C和C++標準中對main函數的定義。
1.C
在C89中,main()是可以接受的。Brian W.Kernighan和Dennis M.Ritchie的經典巨著The C programming Language 2e(《C程序設計語言第二版》)用的就是main()。不過在最新的C99標準中,只有以下兩種定義方式是正確的:
int main(void)
int main(int argc,char*argv[])
(參考資料:ISO/IEC 9899:1999(E)Programming languages—C 5.1.2.2.1 Program startup)
當然,我們也可以做一點小小的改動。例如:char*argv[]可以寫成char**argv;argv和argc可以改成別的變量名(如intval和charval),不過一定要符合變量的命名規則。
如果不需要從命令行中獲取參數,請用int main(void);否則請用int main(int argc,char*argv[])。
main函數的返回值類型必須是int,這樣返回值才能傳遞給程序的激活者(如操作系統)。
如果main函數的最后沒有寫return語句的話,C99規定編譯器要自動在生成的目標文件中(如exe文件)加入return 0;,表示程序正常退出。不過,我還是建議你最好在main函數的最后加上return語句,雖然沒有這個必要,但這是一個好的習慣。
注意,vc6不會在目標文件中加入return 0;,大概是因為vc6是98年的產品,所以才不支持這個特性。現在明白我為什么建議你最好加上return語句了吧!不過,gcc3.2(Linux下的C編譯器)會在生成的目標文件中加入return 0;。
#include?stdio.h
#include?string.h
int?conNumfromStr(char?*,int);
int?main()
{
char?str[21];
printf("輸入20以內的字符:");
scanf("%s",str);
printf("字符串中數字字符個數為:%d",conNumfromStr(str,strlen(str))?);
return?0;
}
int?conNumfromStr(char?*p,int?len)//計數字符串中數字字符的個數
{
int?i,con=0;
for(i=0;ilen;i++)
{
if(p[i]='0'??p[i]='9')
con++;
}
return?con;
}
#includestdio.h
#includestring.h
main()
{
int?i,j=0,k;
char?a[1000];//長度自己根據實際情況調整
printf("請輸入一串字符串:\n");
gets(a);
k=strlen(a);
for(i=0;ik;i++)
if('0'=a[i]='9')
j++;
printf("這串字符串中數字字符有%d個!\n",j);
}
#includestdio.h
#define N 100
void count(char str[],int times[]) //統計小寫字符出現次數
{
int i;
for(i=0;str[i]!='\0';i++)
{
if(str[i]='a' str[i]'a'+26) //只統計小寫字符
times[str[i]-97]++; //字符a的ascii碼為97,str[i]-97正好將26個字母對應在times數組的26個位置上。
}
}
int main()
{
char str[N];
int i,times[26]; //time數組中每一個元素代表一個小寫字符,其值代表字符的出現次數
for(i=0;i26;i++) //初始化,所有字符次數置0
times[i]=0;
scanf("%s",str); //讀入字符串
count(str,times); //調用函數統計次數,讓times裝載統計結果
for(i=0;i26;i++) //輸出結果,小寫字符a的ascii碼為97.
{
printf("%c\t%d\n",i+97,times[i]);
}
return 0;
}
#includestdio.h
#includestring.h
int k=0,l=0;
void spw(char a[100])
{
int i=0,n=0;
n=strlen(a);
for(i=0;in;i++)
{
if(a[i]+'A'a[i]='Z'||a[i]='a'a[i]='z')
k++;
if(a[i]='0'a[i]='9')
l++;
}
}
int main ()
{
char a[100];
gets(a);
spw(a);
printf("%d字母,%d數字",k,l);
return 0;
}
文章標題:c語言子函數調用統計字符 c語言統計字符
網址分享:http://vcdvsql.cn/article22/hepccc.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、標簽優化、移動網站建設、網站制作、軟件開發、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯