Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
lostpoet
7 / 7 / 3
Регистрация: 21.03.2012
Сообщений: 96
#1

Длина строки

04.11.2012, 18:11. Просмотров 1572. Ответов 18
Метки нет (Все метки)

У меня задача стоит что бы пользователь ввёл какой-то текст, а потом программа вычислала длину этой стороки.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream.h>
#include <string.h>
#include <conio.h>
void main()
{
clrscr();
char text; int n,m,d;
cout<<"vvedit prizvische, im'ja, po bat'kovi"<<endl;
cin>>text;
d=strlen(text);
getch();
}
Вот код начала программы (просто там ище стоит задание определить сколько всего букв "а", но об этом потом) и на строчке где d=strlen(text); выдает постоянно ошибку. Помогите пожалуйста с решением этой проблемы. Заранее благодарна=))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2012, 18:11
Ответы с готовыми решениями:

появилась загвоздка с функцией. нужно вывести на экран строку, сост. из звездочек. Длина строки-параметр функциииз звезд. длина строки -
Я видела, что на форуме есть подобные задачи, но ни одно из их решений не...

Если длина введенной строки кратна 4, первую часть строки поменять местами со второй
Если длина введенной строки кратна 4, первую часть строки поменять местами со...

Удалить из строки среднюю букву, если длина строки нечётная или две средних в противном случае
Строки. Дана строка S. Удалите из неё среднюю букву, если длина строки...

Длина строки в С++
Здравствуйте, кто может, подскажите, как определить длину строки в С++. Знаю,...

Длина строки в С++
Проблема с программой,дальше мыслей нету никаких. Нужно чтобы программа...

18
Croessmah
++Ͻ
14500 / 8282 / 1556
Регистрация: 27.09.2012
Сообщений: 20,334
Записей в блоге: 3
Завершенные тесты: 1
04.11.2012, 18:26 #2
как-то так:
C++
1
2
3
4
5
6
    char text[256]={0}; int n,m,d;
    std::cout<<"vvedit prizvische, im'ja, po bat'kovi"<<std::endl;
    std::cin>>text;
    d=strlen(text);
    std::cout<<d<<std::endl;
    getch();
0
wtf?
19 / 19 / 13
Регистрация: 03.10.2010
Сообщений: 48
04.11.2012, 18:28 #3
C++
1
char text;
это обьявление всего лишь одного символа а не строки..
вот правильный вариант
C++
1
2
3
4
    char text[80]; int n,m,d;
    cout<<"vvedit prizvische, im'ja, po bat'kovi"<<endl;
    cin.getline( text, 80 );
    d=strlen(text);
Добавлено через 56 секунд
Croessmah,
C++
1
std::cin>>text;
так будет считыватся только первое слово
0
lostpoet
7 / 7 / 3
Регистрация: 21.03.2012
Сообщений: 96
04.11.2012, 18:31  [ТС] #4
Добавила в програму, а оно только еще больше ошыбок выдало. И что такое std?

Добавлено через 1 минуту
нащёт считываться, то я поменяю, а у меня компилятор не примает команду strlen(text) как с етим бороться?
0
kazak
3057 / 2378 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
04.11.2012, 18:35 #5
Цитата Сообщение от lostpoet Посмотреть сообщение
а у меня компилятор не примает команду strlen(text) как с етим бороться?
strlen в качестве аргумента принимает указатель на char, а Вы ему пытаетесь скормить просто char.
0
Croessmah
++Ͻ
14500 / 8282 / 1556
Регистрация: 27.09.2012
Сообщений: 20,334
Записей в блоге: 3
Завершенные тесты: 1
04.11.2012, 18:36 #6
Цитата Сообщение от lostpoet Посмотреть сообщение
Добавила в програму, а оно только еще больше ошыбок выдало. И что такое std?
фаил <iostream.h> давно устарел. Вместо него используется <iostream>.
В последнем определения cout, cin, и т.д. определены в пространстве имен std.
Цитата Сообщение от lostpoet Посмотреть сообщение
нащёт считываться, то я поменяю, а у меня компилятор не примает команду strlen(text) как с етим бороться?
Мы не телепаты. Что пишет компилятор?
0
lostpoet
7 / 7 / 3
Регистрация: 21.03.2012
Сообщений: 96
04.11.2012, 18:37  [ТС] #7
Тогда если не сложно напишыте отрывок программы, просто с указателями не имела дела и не могу толком розобраться с ними.
0
kazak
04.11.2012, 18:38
  #8

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
фаил <iostream.h> давно устарел.
Тем не менее, Borland C++ for DOS все еще популярен в наших вузах.

0
Croessmah
++Ͻ
14500 / 8282 / 1556
Регистрация: 27.09.2012
Сообщений: 20,334
Записей в блоге: 3
Завершенные тесты: 1
04.11.2012, 18:39 #9
C++
1
2
3
4
5
6
7
8
9
void main()
{
clrscr();
char text[80]; int n,m,d;
cout<<"vvedit prizvische, im'ja, po bat'kovi"<<endl;
cin.getline( text, 80 );
d=strlen(text);
getch();
}
0
kazak
3057 / 2378 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
04.11.2012, 18:40 #10
lostpoet, воспользуйтесь вариантом wtf?.

Добавлено через 48 секунд
Или последним Croessmah'a
0
Croessmah
04.11.2012, 18:41
  #11

Не по теме:

Цитата Сообщение от kazak Посмотреть сообщение
Тем не менее, Borland C++ for DOS все еще популярен в наших вузах.
Но, видимо, не уведомляют о том, что фаил устаревший.

0
kazak
04.11.2012, 18:43
  #12

Не по теме:

Croessmah, кто б преподавателей уведомил:jokingly:

0
lostpoet
7 / 7 / 3
Регистрация: 21.03.2012
Сообщений: 96
04.11.2012, 18:43  [ТС] #13
Если брать начальный код программы, который я предоставила - то выдает вот такие ошибки:
Error 92.CPP 10: Cannot convert 'int' to 'const char *'
Error 92.CPP 10: Type mismatch in parametr '__s' in call to '__strlen(const char *)'
0
Croessmah
04.11.2012, 18:44
  #14

Не по теме:

Цитата Сообщение от kazak Посмотреть сообщение
Croessmah, кто б преподавателей уведомил
В точку!:D Но всё же...

0
lostpoet
7 / 7 / 3
Регистрация: 21.03.2012
Сообщений: 96
04.11.2012, 18:44  [ТС] #15
И еще одно использую Турбо Си 3,0, поетому диирективы препоцесора записаны верно

Но только преподаватель сказал чтобы char text; оставался как есть и не задавать определённое количество символов для него
0
kazak
3057 / 2378 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
04.11.2012, 18:50 #16
Цитата Сообщение от lostpoet Посмотреть сообщение
И еще одно использую Турбо Си 3,0, поетому диирективы препоцесора записаны верно
Дело не в директивах, Вы исправили объявление text?
0
lostpoet
7 / 7 / 3
Регистрация: 21.03.2012
Сообщений: 96
04.11.2012, 19:00  [ТС] #17
Обьясняю при обьявлении переменной не нужно обьявлять количество символов, допустим при считывании поставится число, но при обьявлении нельзя ставить, по этому и нужно определить длину строки, что бы со строкой можно было дальше роботать

Добавлено через 6 минут
Вот когда при обьявлении переменной поставить количество символов, то проблем конечно нет, но все же попробую сдать этот вариант, возможно приймет и так программу. Спасибо за помощь))
0
kazak
3057 / 2378 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
04.11.2012, 19:05 #18
Вот Вам вариант без массива.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
 
int main(int argc, char* argv[])
{
   char text;
   int lenth = 0;
 
   cout << "Vvedite stroku: ";
   while ((text = cin.get()) != '\n')
      lenth++;
 
   cout << "Dlina stroki = " << lenth << endl;
 
   system("pause");
   return 0;
}
1
lostpoet
7 / 7 / 3
Регистрация: 21.03.2012
Сообщений: 96
04.11.2012, 19:18  [ТС] #19
Большое спасибо, этот вариант как раз подходит))
0
04.11.2012, 19:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2012, 19:18

Длина C-строки
Столкнулся с такой проблемой: при передаче функции char-массива и нахождения...

длина строки
Здравствуйте. Есть такой код. char stroka; char *str=new char ;...

длина строки
Определить длинну строки, которая введена пользователем.


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru