gpt4 book ai didi

c++ - Turbo C++ 程序卡住

转载 作者:太空宇宙 更新时间:2023-11-04 15:34:31 26 4
gpt4 key购买 nike

程序本身工作正常,做它应该做的事情(将句子中的单词分开并打印出来)并且不会崩溃。但是,我无法退出程序。它只是卡住了。我什至尝试在最后给出一个 exit(0),但它没有用。

你能告诉我哪里出了问题吗?

#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;
}
}

最佳答案

未定义的行为

你声明了一个指针但没有初始化它(你没有让它指向任何东西):

string s;
// a.k.a. char * s;

接下来,你输入:

gets(string);

这被称为未定义行为:写入未知地址。一个好的操作系统和平台会出现段错误。

在计算机编程中,您需要使用数组分配内存:

char s[256];

或动态分配:

string s = new char[256];

在您从输入或其他地方输入值之前。

关于c++ - Turbo C++ 程序卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38309067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com