當前位置:首頁 » 編程語言 » c語言統計一個字元串中的單詞個數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言統計一個字元串中的單詞個數

發布時間: 2023-06-04 21:30:19

『壹』 c語言中怎樣統計字元串中包含英文字母的個數

c語言中要統計字元串中包含英文字母的個數可以參考以下內容:

main()

{

char str[100],*p;

int num[4],i;

p=str;

gets(str);

for(i=0;i<4;i++)

num[i]=0;

for(;*p!='';p++)

{

if((*p<='z'&&*p>='a')||(*p<='Z'&&*p>='A')) num[0]++;

else if(*p==' ') num[1]++;

else if((*p<='9'&&*p>='0')) num[2]++;

else num[3]++;

}

printf("%d %d %d %d ",num[0],num[1],num[2],num[3]);

}

(1)c語言統計一個字元串中的單詞個數擴展閱讀:

在寫代碼的過程中需要注意:

void main()的用法並不是任何標准制定的。 C語言標准語法是int main,任何實現都必須支持int main(void) { /* ... */ }和int main(int argc, char* argv[]) { /* ... */ }。

類似於a+=a++;或者(i++)+(i++)+(i++)屬於未定義行為,並不是說c語言中還未定義這種行為,它早有定論,它的結果取決於編譯器實現,不要寫這樣的代碼。

『貳』 C語言統計單詞個數

Q:輸入一串字元串,輸出其中有多少個單詞。
Eg:Good Wishes
A:

#include <stdio.h>#include <string.h>#define SIZE 20int main()
{ char str[SIZE]={''}; int count=0;
printf("plz input the string ");
gets(str);
puts(str); int length = strlen(str); for (int i=0;i<length;i++)
{
if(str[i]!=' ')
{ count++; while(str[i]!=' '&&str[i]!='')
{
i++;
}
}
}
printf("%d ",count); return 0;
}

『』和『0』的區別:
在c語言中,它們都是字元,都用對應的ASCII碼來存儲。例如第一個ASCII碼,0,對應字元為(Null),就是 『』,即空字元。我們在c語言中判斷一個字元串是否結束的標志就是看是否遇到『』,如果遇到『』,則表示字元串結束。字元『0』和數字0的區別:前者是字元常量,後者是整形常量,但是字元常量可以像整數一樣在程序中參與相關運算。

(2)c語言統計一個字元串中的單詞個數擴展閱讀

字元串所有字元,如果當前字元不為空,單詞數+1,再嵌套一個while循環,判斷當前單詞是否結束。

#include <stdio.h>

#include <string.h>

int count_words(char* s)

{
int len=strlen(s);

int count,i;

for(i=0;i<len;i++)

{

if(*(s+i)!=' '){ // 如果當前代碼不為空

count++; //單詞數+1

while(*(s+i)!=' '&& i<len) //判斷當前單詞是否結束

i++;

}

}

return count;

}

int main()

{

char* a="i love you";

printf("%d",count_words(a));

}

『叄』 C語言:統計一行字元串中單詞的個數

我把你程序改了一下,可以實現你想要的功能了。
你的char
str[81];
int
i,num=0,word=0;
char
e;
這幾個定義變數的位置都放錯了。
還有你的
數字個數和總的字元個數
也沒統計,我跟你加了。
#include
#define
maxsterlen
255
#include
int
main()
{
int
a=0,b=0,c=0,d=0;
char
str[81];
int
i,num=0,word=0;
char
e;
printf("please
input
the
string:\n");
gets(str);
for(i=0;i<81;i++)
{
if(str[i]!='\n')
{
if((str[i]>='a'&&str[i]<='z')||(str[i]>='a'&&str[i]<='z'))
a++;
else
if(str[i]>='0'&&str[i]<='9')
b++;
else
if(str[i]=='
')
c++;
else
d++;
}
}
for(i=0;(e=str[i])!='\0';i++)
{
if(e=='
')
word=0;
else
if(word==0)
{
word=1;
num++;
}
}
printf("單詞個數
%d
\n",num);
printf("字母個數%d\n",a);
printf("數字個數%d\n",b);
printf("空格個數%d\n",c);
printf("總的字元個數%d\n",d);
}

『肆』 c語言統計字元串中指定的單詞個數

給你個類似的。。。你小改下,就應該可以了。希望對你有幫助

/*編寫一個函數,該函數可以統計一個長度為2的字元串在另一個字元串中出現的次數。

例如,假定輸入的字元串為:asdasasdfgasdaszx67asdmklo,

子字元串為:as,則應輸出6。

[程序分析]

由於小串中只有2個字元所以可用str[i]==sbustr[0]&&str[i+1]==substr[1]來判斷小串是否與長串當前位置(str[i])相同(即出現一次)。

因而只要讓長串當前位置逐一向後移即可(用for()循環來完成)

*/

//[源程序]

#include"stdio.h"

#include"string.h"

#include"conio.h"

intfun(char*str,char*substr)

{inti,n=0,s=strlen(str);

for(i=0;i<s;i++)

if((str[i]==substr[0])&&(str[i+1]==substr[1]))

n++;

returnn;

}

main()

{

charstr[81],substr[3];

intn;

printf("輸入的字元串:");

gets(str);

printf("子字元串:");

gets(substr);

puts(str);

puts(substr);

n=fun(str,substr);

printf("n=%d ",n)

}

/*******************************************************************************************************/

按你的意思我改了下調用函數里的

intfun(char*str,char*substr)

{

inti,j,n=0,s=strlen(str),m=strlen(substr),pan=1;

printf("%d ",m);

for(i=0;i<s;i++)

{pan=1;

for(j=0;j<m;j++)

if((str[i+j]!=substr[j]))//這是進行比較,不是跳出

{pan=0;

break;}

if(pan)

n++;

}

returnn;

}