Форум программистов, компьютерный форум CyberForum.ru

строки - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Ukei
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 30
17.01.2010, 13:42     строки #1
нужно посчитать сколько букв a,b,c...z. в строке, как это можно сделать? заранее благодарен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2010, 13:42     строки
Посмотрите здесь:

Из символов введенной строки сформировать две строки - из цифр и букв C++
c++ Даны две строки: S1 и S2. Определить количество вхождений строки S2 в строку S1. C++
C++ Найти номер строки матрицы, наиболее отдаленный от первой строки
C++ Поменять первый элемент строки с максимальным элементом этой строки
Выявить строки, в которых макс. эл-т больше суммы остальных эл-ов строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
17.01.2010, 13:51     строки #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <conio.h>
 
#define s 80
 
int main ()
{   char str[s];
    char p=str,n,k;
    int i ;
    printf("Please enter the symbols: ");
    scanf("%d",&n) ;
    i=0;
    while(str[s]!='\0')
        if(str[s]=='a'||str[s]=='z')
    i++;
    k++;
    printf("k=%d",k) ;
}
вот, должно работать.
Ukei
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 30
17.01.2010, 14:02  [ТС]     строки #3
не работает, пишет в 8 строке ошибка - cannot convert from 'char [80]' to 'char' (((
ggmann
 Аватар для ggmann
20 / 20 / 1
Регистрация: 06.10.2008
Сообщений: 173
17.01.2010, 14:05     строки #4
char p=str,n,k;
зачем вообще там эта переменная ?) она не где не участвует

Добавлено через 26 секунд
p=str попробуй удалить
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
17.01.2010, 14:06     строки #5
Ukei,

а теперь - правильный ответ (:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <conio.h>
 
#define N 80
 
int main ()
{       char str[N] = {0};
        int n;
        printf("Please enter the symbols: ");
        scanf("%d", &n) ;
        int i=0;
        for (char* p = str; *p; p++)
                if (*p >= 'a' && *p <= 'z')
              i++;
 
        printf("k=%d",i) ;
       getch();
}
JamesBlack
 Аватар для JamesBlack
36 / 36 / 3
Регистрация: 28.07.2009
Сообщений: 144
17.01.2010, 14:07     строки #6
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
вот, должно работать.
Бред. Код определенно левый.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
#define s 80
 
int main ()
{
        char str[s];
        printf("Please enter the string:\n");
        scanf("%s", str);
        int abc[26]={0}; //кажется обнуляется массив так
        for(int i=0; str[i]!='\0'; i++)
                if (str[i]>='a' && str[i]<='z')
                        abc[str[i]-'a']++;
}
Таким образом у тебя в массиве abc будет хранится кол-во буков: a в элементе 0, b в элементе 1 и так далее до z в элементе 25. Дальше если хочешь уже выводи.
ggmann
 Аватар для ggmann
20 / 20 / 1
Регистрация: 06.10.2008
Сообщений: 173
17.01.2010, 14:08     строки #7
чтото оно выдает только к=0 =)
еще варианты?)
Ukei
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 30
17.01.2010, 14:09  [ТС]     строки #8
тож не пашет, вылазиет окно break u continue где то с вайл ошибка
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
17.01.2010, 14:11     строки #9
ggmann,

чтото оно выдает только к=0 =)

естессно, что 0.
потому что в том чудо-коде сама строка не вводится!
у меня только исправлены синтаксические ошибки, чтобы оно хотя бы компилировалось :LOL:
ggmann
 Аватар для ggmann
20 / 20 / 1
Регистрация: 06.10.2008
Сообщений: 173
17.01.2010, 14:13     строки #10
вот все так, лишбы считалось =))
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
17.01.2010, 14:15     строки #11
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int main(){
        int c, count;
        
        count = 0;
        printf("Enter the symbols: ");
        while ( (c = getchar()) != EOF ){
                if ( c >= 'a' && c <= 'z' )
                        count++;
                if ( c == '\n' ){
                        printf("%d symbols in row\n", count);
                        count = 0;
                }
        }
        return 0;
}
вот. Это точно работает. Самый простой и примитивный вариант
JamesBlack
 Аватар для JamesBlack
36 / 36 / 3
Регистрация: 28.07.2009
Сообщений: 144
17.01.2010, 14:16     строки #12
я написал рабочий код. Если хочешь посмотрть кол-во каждого симвова, напиши в конце
C++
1
2
3
printf("Please, enter the symbol: ");
scanf("%c", ch);
printf("Number of symbol %c - %d.", ch, abc[ch-'a']);
и добавь в одной из первы строчек char ch;
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
17.01.2010, 14:18     строки #13
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <conio.h>
int main(int argc, char* argv[])
{
   char str[81];
   int count[26] = {0};
   int i;
 
   printf("Vvedite stroku: ");
   fgets(str, 80, stdin);
   for (i = 0; str[i] != '\0'; i++)
   {
      if (str[i] >= 'a' && str[i] <= 'z')
         count[str[i]-97]++;
   }
   for (i = 0; i < 26; i++)
   {
      if (count[i] != 0)
         printf("%c %i\n", ('a'+i), count[i]);
   }
   getch();
   return 0;
}
JamesBlack
 Аватар для JamesBlack
36 / 36 / 3
Регистрация: 28.07.2009
Сообщений: 144
17.01.2010, 14:19     строки #14
Bloodykeeper, у тебя код для чтения из файла, причем нигде нету ни открытия файла ни закрытия. Не надо писать код, который ты не понимаешь сам.

Добавлено через 38 секунд
kazak, ты написал тоже самое что и я)))
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
17.01.2010, 14:19     строки #15
JamesBlack, о чём ты? если нужно закрытие файла, то пусть сам допишет, я дал нормально работающий код, причём понять его намного проще чем остальные.
Ukei
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 30
17.01.2010, 14:20  [ТС]     строки #16
может тогда заодно подскажете как разделить строку на части?) она выводит вместо mama_myla_ramy mamamylaramy_mamamylaramy и т.д.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "string.h"
#include "locale.h"
 
void main()
{ setlocale (LC_ALL, "Rus");
    char s[12];
     int parts;
      int slen;
      int i;
 
  printf ("Строка ");
   scanf("%s",&s);
   printf ("Частей ");
   scanf ("%i",&parts);
   printf ("Длина строки ");
   scanf ("%i",&slen);
 if (parts<=0)
    {
        printf ("Некорректное число частей");
    }
    else if (parts==1)
    {
        printf ("%s",s);
    }
    else
    {
        printf ("Строка %s", s);  
        printf ("разделена на %i",parts);
        printf ("частей");
 
       int plen;
           plen=slen/parts;
       int partno=0;
        for (int i=0;i<slen;i++)
        {
            if (i>0&&i%plen==0&&partno<parts-1)
            {
                printf ( "_");
                partno++;
            }
 
                printf ("%s",s[i]); }
        
       
    }
    getch();
}
JamesBlack
 Аватар для JamesBlack
36 / 36 / 3
Регистрация: 28.07.2009
Сообщений: 144
17.01.2010, 14:23     строки #17
Bloodykeeper, если твой код протестить просто запустив он не заработает

Добавлено через 44 секунды
Ukei, уууу, не, мне лень . Пусть Bloodykeeper код пишет)))
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
17.01.2010, 14:24     строки #18
JamesBlack, А ты возьми протестируй! ну, давай! это одна из моих домашних задач, вторая вроде бы, как только я Си начал изучать в инсте.
Ukei
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 30
17.01.2010, 14:25  [ТС]     строки #19
всё сделал про буковки, спасип всем, терь осталось ток с частями определица и буит мне зачёт
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2010, 14:27     строки
Еще ссылки по теме:

C++ Переставить строки матрицы по возрастанию максимальных элементов каждой строки
Даны две строки: S и S0. Определить количество вхождений строки S0 в строку S C++
Даны три строки: S1, S2, S3. Заменить в строке S1 первое вхождение строки S2 на S3 C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
17.01.2010, 14:27     строки #20
а у меня нет библиотеки stdafx.h , откуда можно вытянуть?
Yandex
Объявления
17.01.2010, 14:27     строки
Ответ Создать тему
Опции темы

Текущее время: 11:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru