Всем привет. Столкнулся с проблемой. Пользователь вводит строку. По условию нельзя чтобы первый элемент строки был восклицательным знаком. Далее в строке должен быть обязательно восклицательный знак. Как скопировать содержимое строки до восклицательного знака (или обрезать строку). В моем соде при выводе "обрезанной строки" получается "кракозябра", как можно исправить?
#include<iostream>
using namespace std;
int main()
{
setlocale (LC_ALL, "rus");
int CountSpace = 0, CountLit = 0, Index;
char str [200] = "", str1[250] = "";
do {
cout << "Введите строку: "; //повторять ввод строки пока первый символ равен (!)
gets_s(str);
if(str[0] == '!')
cout << "Первый символ строки <!>" << endl;
} while (str[0] == '!');
for(int i = 0; i < strlen(str); i++)
{
if(str[i] == '!')
{Index = i;
break;}
}
cout << "\nПервый <!> встречается на " << Index+1 << " позиции";
strncpy(str1, str, Index-1);
cout << str1;
system ("pause");
return 0;
}
Начнем с того, что бы объявляете массив из одного нулевого символа
char str [] = ""
а потом читаете туда вообще неизвестно сколько
gets(str);
Этого уже достаточно для того, чтобы в программе могло происходить все, что угодно...
Но даже если бы у вас все было верно, и вы не пытались работать в невыделенной памяти, то учтите, что strncpy
не записывает завершающий нулевой символ.
Вобщем, вот что вам нужно:
#include<iostream>
using namespace std;
int main()
{
setlocale (LC_ALL, "rus");
char str[300];
do {
cout << "Введите строку: "; //повторять ввод строки пока первый символ равен (!)
gets_s(str,300);
if(str[0] == '!')
cout << "Первый символ строки <!>" << endl;
} while (str[0] == '!');
for(int i = 0; i < strlen(str); i++)
{
if(str[i] == '!')
{
str[i] = 0;
break;
}
}
cout << str << endl;
system ("pause");
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Друзья, закинул на форму 2 ListView'аУ одного тип item'а простой, а другого тип item'а DynamicAppearance и добавил несколько TTextObjectAppearance со своими названиями
Всем привет, необходимо поменять некоторые параметры в XML файле, со сложной структуройРанее данную задачу решал через DocumentFactoryBuilder, как оказалось...
Есть jar, который генерит IDEAВ нем прописан путь к файлу с музыкой