我是C ++的初学者,我想更多地了解角色,但我遇到了问题。我试图创建一个复制句子的程序,并在空格('\n'
)之间添加一个新行(' '
),就像逐字逐句地分隔句子一样。
int main()
{
char s[256], tmp[256];
int m, n = 0, i;
cout << "String: ";
gets(s);
for (i = 0; i <= strlen(s) - 1; i++)
{
if (s[i] == ' ')
{
m = i;
if (n > strlen(s)) tmp[0] = 0;
else
{
if (m >= strlen(s) - n + 1)
for (i = 0; i <= strlen(s) - n + 1; i++)
tmp[i] = s[n - 1 + i];
else
for (i = 0; i < m; i++) tmp[i] = s[n - 1 + i];
}
strcat(tmp, "\n");
n = i;
}
}
cout << tmp;
system("PAUSE");
}
答案 0 :(得分:2)
尝试
更换
for(i=0;i<=strlen(s)-1;i++)
{
if(s[i] == ' ')
{
m=i;
if(n>strlen(s)) tmp[0] = 0;
else
{
if(m>=strlen(s)-n+1)
for(i=0;i<=strlen(s)-n+1;i++) tmp[i] = s[n-1+i];
else
for(i=0;i<m;i++) tmp[i]=s[n-1+i];
}
strcat(tmp,"\n");
n=i;
}
}
与
for(i=0;i<=strlen(s)-1;i++)
{
if(s[i] == ' ')
{
tmp[i] = '\n';
}
else
{
tmp[i] = s[i];
}
}