При отладке происходит ошибка: Вызвано исключение по адресу
0x6E8FD4EC (ucrtbased.dll) в Lab 24.exe: 0xC0000005:
нарушение прав доступа при записи по адресу 0x00500000.
Код
#include <string.h>
#include <iostream>
#include <Windows.h>
#include <conio.h>
#include <stdio.h>
int main()
{
printf("Введите текст");
char str[256], tmp;
gets_s(str);
int n = strlen(str), count;
printf("Введите букву:");
char t;
scanf_s("%s", &t);
for (int i = 0; i < n; i++)
{
if (str[i] == t)
{
if (str[i - 1] == 32 && i != 0 || i == 0)
{
count = 0;
while (str[i] != 32 && i < n)
{
i++;
count++;
}
if (str[i - 1] == ',')
for (int j = i - count; str[j] != ','; j++)
printf("%s", str[j]);
printf(" ");
}
}
}
system("pause");
return 0;
}
Буду очень благодарен за помощь!
Если ошибка не при компиляции, а при работе - то если читает char
, то надо использовать спецификатор %c
, а не %s
.
char t;
scanf_s("%s", &t);
=>
char t;
scanf_s("%c", &t, 1);
Это только о слете! О том, будет ли ваша программа работать - разговор отдельный... Например, при выводе вы делаете то же самое - используете не тот спецификатор:
printf("%s", str[j]);
Функция scanf_s
требует указания размера принимающего буфера как для формата %s
, так и для форматов %c
и %[]
. Вы же почему-то не указываете размер буфера (почему?), по каковой причине ваш вызов scanf_s
некорректен.
Если вы собираетесь читать один символ, то это
char t;
scanf_s("%c", &t, 1u);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Создал класс HumanПрототипы методов get() и set() объявил в Human
есть ли какой-нибудь способ получить значение колонок на определенной строке зная её?
Использую коллекцию TreeSetВозможно добавить не больше одной записи в add
проблема в следующем-мне нужно два метода один запрос в базу без возращения Resultset,второй с возвращениемоба эти метода постоянно используются...