Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2016, 23:48   #1
CortesGames
Пользователь
 
Аватар для CortesGames
 
Регистрация: 23.10.2016
Сообщений: 86
По умолчанию [СИ, Указатели]: Ввести строку их трёх символов и вывести первые два.

Пишу програму на С. Мне нужно ввести строку из 3 слов, и вывести только первых два, используя указатель.
Я написал вот такой код:
Код:
#include <stdio.h>
#include <curses.h>
#include <string.h>
#include <ctype.h>

int main(){
    char str[50];
    char *p;
    int words=0;
    scanf("%s",&str[50]);
    for(int i=0;i<=50;i++){
        p=&str[i];
        printf("%c",*p);
        if(str[i]=='_'){
            ++words;
        }
        if(words==2)break;  
    }
}
Но при выполнении выводит:

Помогите найти ошибку.
Насылаю баги по фотографии

преимущественно себе

Последний раз редактировалось Вадим Мошев; 16.12.2016 в 22:37.
CortesGames вне форума Ответить с цитированием
Старый 16.12.2016, 08:04   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
scanf("%s",&str[50]);
Вы пишите строку в несуществующий элемент и за границы далее...
p51x вне форума Ответить с цитированием
Старый 16.12.2016, 22:12   #3
CortesGames
Пользователь
 
Аватар для CortesGames
 
Регистрация: 23.10.2016
Сообщений: 86
По умолчанию

Увеличил размер масива на 1.
Не помогло, та же ошибка.
Насылаю баги по фотографии

преимущественно себе
CortesGames вне форума Ответить с цитированием
Старый 16.12.2016, 22:33   #4
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Живо слизуй! (пока не удалил).

13.jpg

Последний раз редактировалось ura_111; 16.12.2016 в 22:36.
ura_111 вне форума Ответить с цитированием
Старый 16.12.2016, 22:40   #5
CortesGames
Пользователь
 
Аватар для CortesGames
 
Регистрация: 23.10.2016
Сообщений: 86
По умолчанию

Сяп
Насылаю баги по фотографии

преимущественно себе
CortesGames вне форума Ответить с цитированием
Старый 16.12.2016, 22:43   #6
CortesGames
Пользователь
 
Аватар для CortesGames
 
Регистрация: 23.10.2016
Сообщений: 86
По умолчанию

Не могу использовать gets так как компилирую через Clang а он ругается что gets не разрешено в С11. Поэтому и использую scanf
Насылаю баги по фотографии

преимущественно себе
CortesGames вне форума Ответить с цитированием
Старый 16.12.2016, 22:51   #7
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

1) Замени (наверно так лучше)
Код:
while (true)
на
Код:
for(int i=1;i<50;i++)
2) Теперь по поводу "scanf".
Возьми напиши другую программу, где ты читаешь строку и сразу её выводишь... Ой удивишься...
ura_111 вне форума Ответить с цитированием
Старый 16.12.2016, 23:49   #8
CortesGames
Пользователь
 
Аватар для CortesGames
 
Регистрация: 23.10.2016
Сообщений: 86
По умолчанию

Если ты о том что сканф читает до пробела, то посмотри код выше, я специално поэтому заменил пробелы на _
А по поводу while- не помогло.
Насылаю баги по фотографии

преимущественно себе
CortesGames вне форума Ответить с цитированием
Старый 16.12.2016, 23:55   #9
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Попробуй так:

17.jpg
ura_111 вне форума Ответить с цитированием
Старый 16.12.2016, 23:59   #10
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Не помогло что?
Используй жестко заданную строку:
Код:
 char str[50];
str[0]='f';
str[1]='t';
str[2]=' ';
str[3]='r;
str[4]='t';
str[5]='y';
..............
а когда отладишь программу - будешь решать проблему ввода с консоли.
ura_111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск ошибки UKRtortik Общие вопросы Delphi 12 16.03.2014 02:53
Поиск ошибки Falcao Паскаль, Turbo Pascal, PascalABC.NET 2 09.01.2013 18:56
Поиск ошибки.... Ангел без крыльев Visual C++ 2 21.12.2011 11:00
C++ , поиск ошибки Sokolik1 Помощь студентам 11 09.06.2011 17:33