Дан текст произвольной длины оканчивающийся символом
'#'. Определить количество строк в тексте, каждая строка заканчивается символом перевода строки '\n'.Если вы ещё не знаете, как работать со строками в С++, прочитайте статью на нашем сайте — символы и строки. Результат работы программы показан на рисунке 1.
#include <iostream>
using namespace std;
int main()
{
char text[] = "последовательная обработка\n символов\nстроки в С++\nпрограммирование на С++\nколичество строк#";
int counter = 0, // индекс символов
new_string = 0; // счётчик строк
while (text[counter] != '#') // посимвольная обработка текста
{
if (text[counter] == '\n')
new_string++; // инкремент счётчика строк
counter++; // инкремент индекса символов
}
cout << "Количество новых строк = " << new_string << endl;
return 0;
}
Для корректного отображения русского текста в Windows, прочитайте статью Кириллица в консоли. Вот пример работы программы:

Рисунок 1 — Определить количество новых строк в тексте
Комментарии
odto11
Собственно мой вариант. Один момент, какой смысл со знака «#»??? Что с ним, что без него..
#include <iostream> #include <cstring> using namespace std; int main() { int X = 0; char sText[] = "CPPSTUDIO.COM — это учебник для начинающих, основная\n задача которого — объяснить новичку язык программирования \n\ С++, с основ и до новейших особенностей ANSI-C++, в том\n числе такие понятия, как: массивы, структуры, списки, \n\ файлы, строки, функции, шаблоны. Не оставим без внимания\n передовую структуру данных С++ — классы, их основные \n\ концепции, такие как полиморфизм, инкапсуляция, наследование.\n Руководство ориентировано не только на сухую \n\ теорию языка высокого уровня С++, но и на практические задания,\n с рабочими примерами программ во всех \n\ разделах и статьях, чтобы изучать С++ было просто не только\n новичку, но и любому «чайнику».#"; cout <<"\t\tОпределить количество новых строк в тексте\n"; for(int i = 0; i < strlen(sText)-1; i++) { if(sText[i] == '\n') { X++; } } cout << "Количество новых строк = " << X; return 0;colt
#include "stdafx.h" #include "iostream" #include "fstream" #include "windows.h" #include "string" using namespace std; fstream fsVar; //объявляем переменную связанную с файлом char cEnd = '\n'; //символ конца строки char cNum = '#'; //символ решётка char buff; //буфер для текущего символа int iNumbOfLines; //счётчик количества строк string strAdress = "C:/1/text.txt"; //адресс файла int _tmain(int argc, _TCHAR* argv[]) { SetConsoleCP(1251); SetConsoleOutputCP(1251); while(true) { system("CLS"); cout<<"\t\t\tОпределить количество новых строк в тексте\n\n"; fsVar.open(strAdress, fstream::in); //открываем файл if (fsVar.is_open()) //проверяем открылся ли файл { iNumbOfLines=1; //если файл открылся, то в нём как минимум содержится одна строка, даже если в ней нет символов cout<<"Файл успешно открыт\n\n"; while(!fsVar.eof()) //если не достигли конца файла "End of File" { fsVar.get(buff); //считываем новый символ из файла if (buff==cEnd) iNumbOfLines++; //как только находим символ перехода строки, счётчик переходов увеличиваем if (buff==cNum) break; //если нашли #, тогда заканчиваем перебор } cout<<"Количество новых строк в тексте = "<<iNumbOfLines<<"\n\n"; } else cout<<"Файл \""<<strAdress<<"\" не существует\n\n"; fsVar.close(); //закрываем файл system("PAUSE"); } return 0; }Роман Лобода
#include<iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, «Russian»);
char text[] = «последовательная обработка\n символов\nстроки в С++\nпрограммирование на С++\nколичество строк#»;
int count = 0;
char x;
for (int i = 0; i < strlen(text); i++)
{
x = text[i];
if (x != ‘#’)
{
if (x == ‘\n’)
{
count++;
}
}
}
cout << «General quantity line in text: » << count + 1 << endl;
}
Georgy Petrov
// 14_Определить количество новых стр.cpp: определяет точку входа для консольного приложения. //несколько способов #include "stdafx.h" #include <iostream> #include <string> #include <conio.h> using namespace std; const int MAX(100); int _tmain(int argc, _TCHAR* argv[]) { //string s; //cout << "Enter string: "; getline(cin,s,'#'); //int len = s.size(); //int k=0; //for (int i = 0; i < len; i++){ // if (s.at(i) == '\n') k++; //} //cout << "Amount of strings: " << k + 1; //char ar[MAX]; //int k = 0; //cout << "Enter string: "; //cin.get(ar, MAX, '#'); //cout << ar; //int len = strlen(ar); //for (int i = 0; i < len; i++){ // if (ar[i] == '\n') k++; //} //cout << "Amount of strings: " << k + 1; char ch = 'a'; int k = 0; cout << "Enter string: "; do{ cin.get(ch); if (ch == '\n')k++; } while (ch!='#'); cout << "Amount of strings: " << k+1; //char ch = ' '; //int k = 0; //cout << "Enter string: "; ////system("cls"); ////cin.clear(); //while (ch != '#'){ // ch = _getche(); // if (ch == '\r'){ cout << endl; k++; } //} //cout << "\nAmount of strings: " << k + 1; //char ar[] = "FNnw wdwd \nwdjf wd f\n df sd \nsdf#"; //int len = strlen(ar); //int k = 0; //for (int i = 0; i < len; i++){ // if (ar[i] == '\n') k++; //} //cout << "\nAmount of strings: " << k + 1; _gettch(); return 0; }gro
Ненавижу работу с символами и строками:-(
#include <iostream> using namespace std; int main() { setlocale(LC_ALL,"rus"); char text[500], text2[500]={''}; int counter=0; cout << "Введите текст:\n"; while (!strchr(text,'#')) //поиск первого вхождения символа # в строке text. { cin.getline(text, 128, '\n'); // Ввод строки до 128 символов и завершение ввода строки по нажатию Enter strcat(text2, text); // Присоединение строки в text к уже имеющимся в text2 strcat(text2, "\n"); counter++; } cout << "\nВведенный текст: \n" << text2 << "\nНовых строк: " << counter << endl; return 0; }gro
text2[500]={»}; — редактор нуль-символ скушал, а я и не заметил
gro
не отображается в кавычках