为什么我的字符数组(字符串)断裂

Why my character array(string) is breaking?

本文关键字:字符串 断裂 数组 我的 字符 为什么      更新时间:2023-10-16

我写了一个代码,从第一个字符串的元素复制到第二个字符串,除了空格。它只是接受输入,如果它得到一个空格,那么它不会将第一个字符串的字符插入到第二个字符串中。当我在最后打印第二个字符串时,字符串被部分分解。而不是空格,如果我输入任何字符,第二个字符串完全打印出来。我正在尝试,但你能修复我的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);
}