为什么我的字符数组(字符串)断裂
Why my character array(string) is breaking?
我写了一个代码,从第一个字符串的元素复制到第二个字符串,除了空格。它只是接受输入,如果它得到一个空格,那么它不会将第一个字符串的字符插入到第二个字符串中。当我在最后打印第二个字符串时,字符串被部分分解。而不是空格,如果我输入任何字符,第二个字符串完全打印出来。我正在尝试,但你能修复我的bug吗?
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
int main()
{
char str1[100];
while(cin>>str1)
{
char str2[100];
int k=0;
for(int i=0; str1[i]!=' '; i++)
{
if(str1[i]!=' ')
{
str2[k] = str1[i];
k++;
}
}
str2[k] = ' ';
cout<<"result is "<<str2<<endl;
}
return 0;
}
可以使用gets()和puts()来读取/显示字符串:
#include <iostream>
#include <string.h>
using namespace std;
int main(void)
{
char s1[100], s2[100];
int k=0;
puts("Insert your string:");
gets(s1);
for (int i=0; i<strlen(s1); i++) {
if (s1[i] != ' ') {
s2[k]=s1[i];
k++;
}
}
puts(s2);
}