#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
char str[100];
cout << "Enter a string : ";
gets(str);
cout << "The words containing y in their last place are : ";
cout << "\n";
for(int i = 0; str[i] != '\0'; i++)
{
int j = i + 1;
if((str[i] == 'y') && (str[j] == ' '))
{
int k;
cout << 134;
char stress[50];
int m = 0;
k = i;
for(; (str[k] != ' ') || (k != 0); k--, m++)
{
stress[m] = str[k];
}
stress[m] = '\0';
int g;
for(g = 0; stress[g] != '\0'; g++)
;
char strain[g];
for(int n = 0, q = k - 1; q >= 0; n++, q--)
{
strain[n] = stress[q];
}
strain[g] = '\0';
for(int p = 0; p < g; p++)
{
cout << strain[p];
}
cout << "\n";
cout << 1;
}
cout << 12;
}
return 0;
}
这个c ++程序将显示包含'y'的单词作为其最后一个字母。我用cout&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; 12&lt;&lt;&lt; 1等...来了解程序的哪个部分正在工 不要因为看到紧张和压力而感到困惑。它们只是字符串。 我在Windows 7中使用代码块
运行程序后,我弹出一个窗口,显示“prg.exe已停止工作”。 请有人告诉我为什么会出现这个错误。 我使用的是代码块 我将非常感激。
答案 0 :(得分:0)
由于使用gets()
功能,您可能会遇到错误,因为当您使用gets()
时,您需要知道您将获得的字符数量。它在2011年被标准删除,但几乎每个C实现都使用它。所以为了避免这种危险的功能你可以使用:
getline()
,非常易于使用 - 就像那样:
getline(cin,str);
fgets()
,它的使用方式与gets
类似,但您需要提及您将阅读的字符数:
fgets(str, num_of_chars, cin);