Сама программа работает правильно, делает то, что она должна (разделяет слова в предложении и распечатывает их) и не падает. Однако я не могу выйти из программы. Он просто застревает. Я даже попытался дать выход (0) в конце, но это не сработало.Запуск программы Turbo C++
Не могли бы вы рассказать мне, что случилось?
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<process.h>
typedef char* string;
void main()
{
clrscr();
string s;
cout << "\nEnter something : ";
gets(s);
int i;
for (i = 0; i < strlen(s); ++i)
{
if (s[i] != 32)// && (!isalnum(s[i-1]) || i == 0))
{
char *word = s;
int end = 0;
for (; s[i] != 32 && i < strlen(s); ++i);
if (i == strlen(s)) end = 1;
else * (word + i) = '\0';
cout << "\n" << word;
if (end) break;
strcpy(s, s+i+1);
i = -1;
}
}
}
Похоже, вам, возможно, потребуется научиться использовать отладчик для перехода через ваш код. С хорошим отладчиком вы можете выполнить свою программу по очереди и посмотреть, где она отклоняется от ожидаемого. Это важный инструмент, если вы собираетесь заниматься программированием. Дальнейшее чтение: ** [Как отлаживать небольшие программы] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) ** – NathanOliver
Извините, моя первоначальная программа содержала систему («пауза»), и я удалил его. Но это все еще не решает проблему. Программа по-прежнему не завершается. –
Я знаю, что использование этой устаревшей библиотеки c нехорошо, но у меня нет выбора. Turbo C++ - обязательный компилятор для компьютерной науки в моей школе, и поэтому я должен использовать его. –