Здравствуйте, Павленко А.А!
Хранение, а также ввод / вывод строк в C++ осуществляется различными способами: как массива символов (char string[] = "строка";), как объекта строкового класса string (string sMyString = "строка";), с помощью объектов классов, представленных лишь в определённых средах разработки / библиотеках (AnsiString - в C++ Builder, QString - в Qt).
Наиболее "традиционный" способ хранения строк - в виде массива символов, который заканчивается нулём ('\0'). Последний и является признаком конца строки, т.н. "строка, заканчивающаяся нулём" (null terminated string). В приложении 1 - программа-пример, показывающая как определить, на каком символе (по номеру) заканчивается строка.
Конец строки в классе string определён как npos, но удобнее для определения конца строки использовать функцию-член этого класса length(), которая возвращает длину строки.
В приложении 2 - программа-пример, показывающая как определить, на каком символе (по номеру) заканчивается строка, представленная объектом класса string.
P.S. Оба примера работают одинаково:
Приложение:
// Приложение 1
//----------------------------------------------------------
#include <iostream.h>
//----------------------------------------------------------
int main()
{
char string[] = "string"; // Наша строка
char cTmpChar;
int i = 0; // Счётчик символов
for( ; ; i++)
{
cTmpChar = string[i]; // Временной переменной присваиваем символ на позиции i
if(cTmpChar == '\0') break; // Если конец строки - выходим из цикла
else cout << i <<": " << cTmpChar << endl; // иначе выводим символ и его номер
}
cout << "String is ended at the symbol " << i << endl;
return 0;
}
// Приложение 2
//----------------------------------------------------------
#include <iostream>
#include <string>
using namespace std;
//----------------------------------------------------------
int main()
{
string String = "string"; // Наша строка
char cTmpChar;
int i = 0; // Счётчик символов
for( ; i < String.length(); i++) // Пока не достигнут конец строки
{
cTmpChar = String.at(i); // считываем символы на позиции i
cout << i <<": " << cTmpChar << endl; // и выводим их вместе с номером
}
cout << "String is ended at the symbol " << i << endl;
return 0;
}