字符串不在for循环外的c ++中打印

问题描述

我尝试使用c ++在给定的字符串中分隔A-Z字符,但是分隔的字符串不在输出中打印,但是如果我在for循环内移动“ cout”语句,它将打印字符。我不知道为什么会这样。如果我做错了,请告诉我。

我的代码

#include<iostream>

using namespace std;

int main()
{
    int t;
    cin>>t;    //number of test cases

    while(t--)
    {
        string s,a,n;
        int j=0,k=0;
        char temp;

        cin>>s;      //getting string

        for(int i=0; i<s.length(); i++)
        {

            if(s[i]>=65 && s[i]<=90)       //checking for alphabets
            {
                a[j]=s[i];
                j++;
                cout<<a[j-1]<<endl;
            }

            else
            {
                n[k]=s[i];
                k++;
                cout<<n[k-1]<<endl;
            }

        }

        cout<<endl<<a<<endl<<n;       //this line is not printing
     }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)