2014-09-28 3 views
-3

Я пытался вычислить количество пробелов в предложении, но я не знаю, как сообщить программе, какое предложение я хочу рассчитать, пожалуйста, помогите мне, вот мой код.Как вычислить пустое пространство

#include <stdio.h> 
#include <string.h> 
#include <conio.h> 

int wid, len, i, j, temp, blank; 
char text[100], ch; 

int main(){ 
printf ("Enter the width of the colum: "); 
gets (text); 
sscanf (text, "%d", &wid); 
printf ("\nEnter a line of text: "); 
gets (text); 

len = strlen (text); 
for (i = 0; i < 7; i++){ 
    printf ("1234567890"); 
} 
while(len > 50){ 
    printf ("\nThe text is too long!\n"); 
    break; 
} 
ch = getch(); 
for (j = 0; j < len; j++){ 
    if (ch == ' ') {blank++;} 
} 
printf ("\n%d", blank); 
} 

Я хочу, чтобы подсчитать, сколько заготовки для этой части Е («\ nВведите строку текста:»); получает (текст);

+0

Я не вижу никаких проблем с вашим кодом, что он делает? Что он должен делать вместо этого? –

+2

Вы уверены, что хотите ** blank_space_in_a_sentence ** или хотите ** blank_space_in_a_line **? Это важно. Линия проще, поскольку предложения обычно разбиваются на несколько строк. У вас также есть набор знаков препинания, которые вы считаете ** end_of_sentence_punctuation? ** Как '.,?,! И/или;'? –

+1

Поскольку здесь еще не было сказано: никогда не используйте 'gets'. Вместо этого используйте, например, 'fgets', в этом случае' fgets (text, sizeof text, stdin); '(note,' sizeof' будет работать только тогда, когда 'text' является массивом, а не указателем, если это указатель, тогда вам нужно знать размер по какому-либо другому механизму, например, твердое значение 100 в этом случае). – hyde

ответ

4

вместо

ch = getch(); 
for (j = 0; j < len; j++){ 
if (ch == ' ') {blank++;} 

попробовать

for(j = 0; j < len; j++) 
{ 
    if(text[j] == ' ') //comparing if the string in text contains blank space at position j 
     blank++; 
} 

также, вместо того, получает(), чтобы прочитать строку, использование fgets.

0
/* cprogram to count blanck spaces in the string*/ 
#include<stdio.h> 
#include<string.h> 
int main() 
{ 
    int len,i,blank_space=0; 
    char str[20]; 
    printf("Enter the string "); 
    fgets(str,20,stdin); 
    printf("%s",str); 
    //claculate string length 
    len=strlen(str); 
    //printing length of the string 
    printf("length of the string is %d",len); 
    //loop to detect blankspaces 
    for(i=0;i<len;i++) 
    { 
     if(str[i]==' ') 
     blank_space++; 
    } 
    //display the result 
    printf("no of blanked spaces is %d",blank_space); 
    return 0; 

}