當前位置:首頁 » 編程語言 » c語言統計字元時怎麼刷新
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言統計字元時怎麼刷新

發布時間: 2022-09-02 08:39:29

c語言怎麼刷新輸出時間

由於c語言標准庫函數,沒有Sleep延時程序,需要自己編寫,主要通過循環判斷difftime函數返回的時間差來實現延時,具體代碼如下,
#include <stdio.h>
#include <time.h>
//延時程序
void sleep(int s)
{
time_t tmp1=time(NULL);
time_t tmp2=tmp1;
while(difftime(tmp2,tmp1)<s)//延時s秒後結束
{
tmp2=time(NULL);
}
}
int main(int argc, char *argv[])
{
int i=1;
while(i)
{
printf ("%d : %s \n",i++,__TIME__);//列印i及程序編譯時間
sleep(1);
system("cls"); //清屏
}
return 0;
}

函數double difftime(time_t time2, time_t time1);返回兩個time_t型變數之間的時間間隔,即 計算兩個時刻之間的時間差。time1計時開始時間,time2計時結束時間,不斷更新time2直至(time2-time1)為所需要的延時時間即可。

Ⅱ C語言編程:統計字元串中各字母出現的次數

#include&lt;stdio.h&gt;

#include&lt;stdlib.h&gt;

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++)//循環整個串

n++;//自增

p=s;//重新指向子串

break;//退出

char a[81],b[81];//定義兩個字元數組

fgets(b,81,stdin);

printf("找到:%d ",findsub(a,b));

system("pause");

return 0;

}

數據類型:

字元串數據類型是建模在形式字元串的想法上的數據類型。字元串是幾乎在所有編程語言中可以實現的非常重要和有用的數據類型。在某些語言中它們可作為基本類型獲得,在另一些語言中做為復合類型獲得。多數高級語言的語法允許通常用某種方式引用起來的字元串來表示字元串數據類型的實例;這種元字元串叫做「文本」或「字元串文本」。

以上內容參考:網路-字元串

Ⅲ C語言如何統計並輸出不同字元在文章中出現的次數或頻率(空格、換行、標點等也按字元處理)

至於思路嘛,其實也沒什麼,就是分別進行判斷是否數字、字母、空格之類,並和用自增運算符來統計數量。具體看注釋。

#include"stdio.h"
void main()
{
int qita=0,english=0,space=0,number=0,i,j;

while((i=getchar())!='\n') /**執行循環,把獲得的字元賦給i,直到i等於換行符\n時循環終止**/
{
if(('a'<=i&&i<='z')||('A'<=i&&i<='Z'))
english++; /**如果a<=i<=z或A<=i<=Z,則字母的個數自加一**/
else if('0'<=i&&i<='9') /**如果是0--9之間的數字,則執行下面的number++**/
number++;
else if(i==' ') /**這個是判斷空格的**/
space++;
else
qita++; /**這個是統計其他未知字元個數**/
}
printf("english=%d,space=%d,number=%d,qita=%d",english,space,number,qita);
getch();
}

Ⅳ C語言中統計字元出現的次數

是有些錯誤,我幫你改了下 ,你自己看看:
# include "stdio.h"
# include "string.h"
main()
{
char a[100],b[100];
int i,n1,n2,k,num,flag;
printf("輸入原文:\n");
scanf("%s",a);
fflush(stdin); /* flush the input stream in case of bad input */

printf("輸入字元串:\n");
scanf("%s",b);
fflush(stdin); /* flush the input stream in case of bad input */

n1=strlen(a);
n2=strlen(b);
num=0;
for(i=0;i<n1-n2;i++)
{
for(k=i;k<n2+i;k++)
{
flag=1;
if(a[k]!=b[k-i])
{
flag=0;
break;
}
if((k-i)==(n2-1))
{
num++;
i+=n2;
}
}
}
printf("總共出現%d\n",num);
system("pause");
}
首先,最好是在scanf("%s",a);後面加上這句 fflush(stdin);
/* flush the input stream in case of bad input */
其次,你的思路有問題,在第二個for循環裡面
第二個if的條件應該改成(k-i)==(n2-1),即檢查到了字元數組b的結尾了,說明前面的都匹配,那麼才加1,呵呵呵,自己好好想想吧

Ⅳ C語言中寫入數據怎樣才可以刷新寫入謝謝!~

你好!!
不知你向文件輸入的是什麼數據,輸入數據的函數很多,有fputc(s,fp);有fwrite()函數、、、、
下面是想文件輸入字元,並把字元串中的小寫字元轉換成大寫字元:
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>

int main()
{
FILE *fp;
char filename[20];
printf("請輸入文件的名稱:");
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("cannot open file !!!\n");
exit(0);

}
printf("請輸入字元直至結束(ctrl +z):");
fflush(stdin);
char s;

while(scanf("%c",&s)!=EOF)
{
if(islower(s))
s=toupper(s);//把小寫字元轉換成大寫字元
fputc(s,fp);

}

rewind(fp);//是位置指針重新返迴文件的開頭,此函數沒有返回值

if((fp=fopen(filename,"r"))==NULL)//以讀的方式打開文件
{
printf("cannot open file !!!\n");
exit(0);

}

while(!feof(fp))
{
s=getc(fp);
putchar(s);

}

return 0;

}
測試:
請輸入文件的名稱:hello
請輸入字元直至結束(ctrl +z):hello world !
Z
Z
HELLO WORLD !
Press any key to continue

Ⅵ C語言字元串

代碼功能:

1、輸入任意行數的內容(如果你想限制最多10行,自己加個變數計數好了)。

2、不想輸入時,新行直接回車,會刷新顯示統計個數。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
typedefstructstrs
{
charstr[100];
structstrs*next;
}STRS;
voidcontWord(char*str);//對字元串大小寫字母計數
voidintput(STRS**strsHead,STRS**strsTail);//輸入字元串,並顯示統計結果(每輸入完一行回車時,刷新數據)
voidprfStrs(STRS*strsHead,inttj);//列印字元串及統計結果
intdCon=0;//大寫字母計數
intnCon=0;//數字計數
intmain()
{
STRS*strsHead=(STRS*)malloc(sizeof(STRS));
strsHead->next=NULL;
STRS*strsTail=NULL;
intput(&strsHead,&strsTail);
return0;
}
voidprfStrs(STRS*strsHead,inttj)//tj=1輸出統計結果;tj=0不輸出統計結果
{
while(strsHead->next!=NULL)
{
printf("%s ",strsHead->next->str);
strsHead=strsHead->next;
}
if(tj==1)
{
printf("大寫字母個數:%d ",dCon);
printf("數字輸入個數:%d ",nCon);
}
}
voidcontWord(char*str)
{
intlen=strlen(str),i;
for(i=0;i<len;i++)
{
if(str[i]>='A'&&str[i]<='Z')
dCon++;
if(str[i]>='0'&&str[i]<='9')
nCon++;
}
}
voidintput(STRS**strsHead,STRS**strsTail)
{
STRS*strsNew;
charc;
while(1)
{
strsNew=(STRS*)malloc(sizeof(STRS));
memset(strsNew->str,0,100);
if(strsNew->str[0]==0)
{
c=0;
c=getchar();
if(c==' ')
{
system("cls");
prfStrs(*strsHead,1);
break;
}
else
{
strsNew->str[0]=c;
}
}


gets(&strsNew->str[1]);
strsNew->next=NULL;
if((*strsHead)->next==NULL)
(*strsHead)->next=strsNew;
else
(*strsTail)->next=strsNew;
*strsTail=strsNew;
contWord(strsNew->str);
}
}

Ⅶ (C語言)關於統計一行數字字元中每個數字字元出現的次數。

大部分錯誤都集在中stat方法中,如下:

voidstat(char*s,int*num){
inti;
charch;
ch=s[i];//你上面只是定義了i,從未賦值,i的值就是一個隨機數
while((ch=getchar())!=' '){//你前面的indata就已經讀入數據到s中了,這里只應該從s中讀取並比較它是不是就可以了,而不應該是getchar
if(ch>='0'&&ch<='9')
num[ch-'0']+=1;
}
}
另外一個很重要的錯誤,你的num數組在使用前也並未初始化,會導至num中的數字也全部是隨機的

修改如下

#include<stdio.h>
#defineM10
#defineN10
voidindata(char*s){
inti;
for(i=0;i<M;i++)
s[i]=getchar();
}
voidstat(char*s,int*num){
inti=0;
charch;
ch=s[i];//取第一個元素
for(;i<N;i++)num[i]=0;//num初始化
i=0;
while(ch!=''){
if(ch>='0'&&ch<='9')
num[ch-'0']++;
ch=s[++i];//取下一元素
}
}
voidoutdata(int*num){
inti;
for(i=0;i<N;i++)
printf("%d:%d ",i,num[i]);
}
main(){
intnum[N];
chars[M];
indata(s);
stat(s,num);
printf("Outputtheresult: ");
outdata(num);
}

//當然stat也可以進一步簡化,變為
voidstat(char*s,int*num){
inti=0;
charch;
for(;i<N;i++)num[i]=0;
i=0;
while((ch=s[i++])!=''){
if(ch>='0'&&ch<='9')
num[ch-'0']++;
}
}

Ⅷ c語言如何統計字元個數

在C語言中,要統計一個字元串的字元個數,可以採用char類型的字元數組,再進行逐個位元組的掃描,如果它的ASCII值大於零,這個位元組算一個字元;如果它的ASCII值小於零的,就連同後續的一個位元組算一個字元。遇到ASCII值等於零,就停止統計輸出統計的結果。

Ⅸ c語言統計字元串中每個字元出現的次數

#include&lt;stdio.h&gt;

#include&lt;stdlib.h&gt;

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-ptr&lt;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 ",findsub(a,b));

system("pause");

return 0;

}

(9)c語言統計字元時怎麼刷新擴展閱讀:

①printf()函數是格式化輸出函數,一般用於向標准輸出設備按規定格式輸出信息。

格式輸出,它是c語言中產生格式化輸出的函數(在stdio.h中定義)。用於向終端(顯示器、控制台等)輸出字元。格式控制由要輸出的文字和數據格式說明組成。

要輸出的文字除了可以使用字母、數字、空格和一些數字元號以外,還可以使用一些轉義字元表示特殊的含義。

簡單點理解就是,在一段程序中你正確使用該函數,可以在該程序運行的時候輸出你所需要的內容。

②printf函數是一個標准庫函數,它的函數原型在頭文件「stdio.h」中。但作為一個特例,不要求在使用printf函數之前必須包含stdio.h文件。

printf()函數的調用格式為:printf("&lt;格式化字元串&gt;",&lt;參量表&gt;)。

其中格式化字元串用於指定輸出格式。格式控制串可由格式字元串和非格式字元串兩種組成。

Ⅹ C語言中怎樣在統計字元時即時刷新

使用getch();函數, 接收字元竄, 不需要按回車鍵
返回的是輸入的字元
頭文件為 conio.h