codeblocks:c++代码如下,为什么输出不对 啊??

#include using namespace std; int main() { char ci[50]; cin.getline(ci,50); char p1[25]; int i=0,j=0; while(ci[i]!='\0') { p1[j]=ci[i]; i=i+2; j=j+1; } p1[j]='\0'; cout<<p1<<endl; return 0; }

img

改成这样就好了,之前i+2会正好跳过结束符,导致循环错误

#include <bits/stdc++.h>
using namespace std;
int main()
{
    char ci[50];
    cin>>ci;
    char p1[25];
    int i=0,j=0;
    while(i<strlen(ci))
    {
        p1[j]=ci[i];
        i=i+2;
        j=j+1;
    }

    p1[j]='\0';
    cout<<p1<<endl;
    return 0;
}
//Coheifnia

img

#include <bits/stdc++.h>
using namespace std;
int main()
{
    char ci[50] = {0};
    cin>>ci;
    char p1[25] = {0};
    int i=0,j=0;
    for(i=0;ci[i] != '\0';i++)
    {
        if(i%2==0)
            p1[j++] = ci[i];
    }
    cout<<p1<<endl;
    return 0;
}