Другие языки программирования и технологии

Условие при котором отбираются слова 5 или более символов. Язык Си.

Задание: Дана строка
символов до точки. Определить, сколько слов, состоящих из 5 и более символов,
содержит данная строка.
Решение:

#include <stdio.h>

#include <locale.h>

int main()

{

setlocale(LC_ALL, "rus");

int k;

char *S2="Иванов Иван Петрович - инженер";

for (k=0; (*S2)!= '.'; S2++)

if ((*S2)=='') k++;

printf("\n %d",k);

return 0;

}

Прошу прощение за этот ужасный вид кода, но таков дизайн данного сайта, скинул его на http://pastebin.com/index/HswYFrdY

.Как мне правильно задать условие, чтобы отобрать слова или строки размер которых больше 5 символов? В целом у меня правильное решение?
ЕА
Е А
116
скинутое на пастебин - попытка подсчитать вхождения `a` и `A`.
Явно не то туда залито
Алексей Толоконников
Алексей Толоконников
27 060
Лучший ответ
#include <stdio.h>
#include <locale.h>
int main(){
int i,k=0,n=0; char s[200];
setlocale(LC_ALL, "rus"); gets(s);
for(i=1;s[i];i++){
if(s[i]>'@'&&s[i-1]<='@')k=i;
if(s[i]<='@'&&s[i-1]>'@')n+=i-k>=5;}
printf("%d\n",n); getchar(); return 0; }
Ну я так, чисто потроллить. PHP:
$str = $_GET['str'];
preg_match_all('#(\w{5,})#u', $str, $m);
echo 'Количество слов: '.sizeof($m[0]);
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main() {
    #define DELS " ,;?.\n"
    char s[128], *w;
    int n = 0;
    printf("строка? ");
    fgets(s, 128, stdin);
    for (w = strtok(s, DELS); w != NULL; w = strtok(NULL, DELS)) {
        if (strlen(w) >= 5) {
            printf("%s\n", w);
            ++n;
        }
    }
    printf("кол-во слов из 5-ти и более символов %d\n", n);       
    return 0;
}
Made Jamaica
Made Jamaica
96 552
Ну блин элементарно же)
Сделай вывод инфы на экран.
Нашло слово более 5-ти символов - выводит либо слово, либо считает количество слов более 5 символов.
Код твой плохо читаем, но я бы сделал проверку посимвольно.
Есть функция, которая слово из строки записывает в ругую переменную типа чар, ей надо указать сивол-разделитель слов.
Затем считаешь количество букв. если 5 и более -то ...
В противном случаее ничего.
Чтение следующего слова
char[] str = "Иванов Иван Петрович - инженер";
int count = 0;
for (int i = 0, j = 0; i < sizeof(str); i++) {
if (str[i] == ' ' || str[i] == '\0') {
if (j >= 5) {
count++;
}
j = 0;
} else {
j++;
}
}
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "rus");
int k;
int num=0;
int word=0;
char *S2="Иванов Иван Петрович - инженер. ";
for (k=0; (*S2)!= '.'; S2++)
{
num++;
if ((*S2)==' ') {if (num>=5)word++; num=0;}
}
printf("\n %d",word);
return 0;
}