プログラム自体が正しく動作し、それが想定されている(文中の単語を分離して印刷します)、クラッシュしません。しかし、私はプログラムを終了することはできません。それはちょうど立ち往生する。私は最後に出口(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;
}
}
}
デバッガを使用してコードをステップ実行する方法を学ぶ必要があるようです。良いデバッガを使用すると、プログラムを1行ずつ実行し、どこからずれているかを確認することができます。これはプログラミングをする場合に不可欠なツールです。詳しい読書:** [小さなプログラムをデバッグする方法](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)** – NathanOliver
申し訳ありません、私の最初のプログラムは、 "一時停止")、私はそれを削除しました。しかし、それでも問題は解決しません。プログラムはまだ終了しません。 –
私はこの古いCライブラリを使うのは良くないと知っていますが、私はオプションがありません。 Turbo C++は私の学校のコンピュータサイエンスのための必須のコンパイラなので、私はそれを使わなければなりません。 –