Перейти к содержимому

Фотография

Новые уроки по С++. 7 урок. Строки и 2 мерный массив

автор денис марков

Сообщений в теме: 6

#1 DenisMD

DenisMD

    Продвинутый пользователь

  • Модераторы
  • 40 сообщений
  • ГородМагнитогорск

Отправлено 16 Июль 2013 - 01:42

В данном уроке научимся работать со строками, как с массивом символов.


  • Evgeniy это нравится

#2 Frenzy

Frenzy

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 05 Август 2013 - 09:28

Всем привет.У меня вопрос по выводу строк на русском языке. Я попытался добавить библиотеку windows.h и в ф-ции main дописал:

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

после этого русские символы вроде отображаются нормально. Подскажите это проходит только с небольшим количеством текста или проканает допустим и со страницей?



#3 Administrator

Administrator

    Администратор

  • Администраторы
  • 89 сообщений
  • ГородПенза

Отправлено 05 Август 2013 - 18:24

Всем привет.У меня вопрос по выводу строк на русском языке. Я попытался добавить библиотеку windows.h и в ф-ции main дописал:

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

после этого русские символы вроде отображаются нормально. Подскажите это проходит только с небольшим количеством текста или проканает допустим и со страницей?

я не пробовал честно говоря, но тут мне кажется без разницы с каким объемом, ведь эти функции просто меняют кодировку символов в консоли и все.



#4 Mihail

Mihail

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 04 Январь 2014 - 23:35

Здравствуйте...у меня при написании программы со строками возникла проблема...выдает ошибку..."функция принимает 2 аргумента"...не знаю что и делать подскажите пожалуйста в чем все таки дело.
Программа на нахождение самого длинного слова в предложении...выводит последнее(если два одинаковых)
 

 

#include <iostream>
using namespace std;

int main()
{
setlocale(LC_ALL,"Rus");

char str[80];
cin.getline(str,80);
                                 
char* ptr=strtok(str," .,!?"); <--- тут ошибку выдает                       
char* max=ptr;                                                                                    

do {                                                                                        
if(strlen(max)<strlen(ptr))
max=ptr;
}
while(ptr=strtok(NULL," .,!?"));   <--- и вот тут ошибку выдает

cout<<max <<endl;

system("pause");
return 0;
}



#5 Mihail

Mihail

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 04 Январь 2014 - 23:38

 

В данном уроке научимся работать со строками, как с массивом символов.

 

Здравствуйте...у меня при написании программы со строками возникла проблема...выдает ошибку..."функция принимает 2 аргумента"...не знаю что и делать подскажите пожалуйста в чем все таки дело.
Программа на нахождение самого длинного слова в предложении...выводит последнее(если два одинаковых)
 

 

#include <iostream>
using namespace std;

int main()
{
setlocale(LC_ALL,"Rus");

char str[80];
cin.getline(str,80);
                                 
char* ptr=strtok(str," .,!?"); <--- тут ошибку выдает                       
char* max=ptr;                                                                                    

do {                                                                                        
if(strlen(max)<strlen(ptr))
max=ptr;
}
while(ptr=strtok(NULL," .,!?"));   <--- и вот тут ошибку выдает

cout<<max <<endl;

system("pause");
return 0;
}

Извините за спам))



#6 Миша

Миша

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 30 Сентябрь 2014 - 00:57

Доброго времени суток! Помогите пожалуйста с у меня решить проблему (програма из урока):


 
int main()
{
setlocale (LC_ALL, "Russian");
 
 
char str1[80];
 
cout << "Введите строку - ";
 
cin.getline (str1,80);
 
system ("cls");
 
cout << str1 << endl;
 
int numberWords = 0;
bool inWord = false;
 
for (int i(0); str1[i] != '/0'; i++)
{
if ( isalpha (str1[i]) && !(inWord))
{
numberWords++;
inWord = true;
}
if ( !isalpha (str1[i]))
inWord = false;
 
}
cout << numberWords;
 
_getch();
return 0;

 програма запускается, я ввожу строку, экран очищается и выводится сама строка, но дальше появляется окно с надптсью - expression c =-1 && c =255

For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.

Помогите пожалуйста разобратся.



#7 Orlangor

Orlangor

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 06 Февраль 2017 - 21:34

В уроке походу предлагалось посчитать строки с помощью цикла, вот предоставляю вашему вниманию. P.S я начинающий программист.


#include <iostream>

#include <conio.h>
 
using std::cout;
using std::endl;
using std::cin;
 
int main()
{
setlocale(LC_ALL,"Russian");
 
char str[] = "Hello\0"; // Как и положено массив сам создает себе количество элементов, от количества строк
int r(0); // Переменная - счетчик.
for (int i(0); i < (int)str; i++) // Тут цикл определяет конечную точку теста. (Сколько определил массив элементов, столько и пройдет цикл)
      {
                if (str[i] != '\0')
                      {
                            r += 1;      // Если каждый элемент массива не равен 0 байту, то счетчик увеличивается.
 
                      }
 
                else if (str[i] == '\0')
                     {
 
                            break;       // Как только 0 байт найден, происходит выход из цикла
                     }
 
    }
 
cout << "Количество символов в строке: " << r << endl;
 
 
_getch();
return 0;
 
}

 

Возможно, кому то это окажется полезным.







Темы с аналогичным тегами автор денис марков