char S[4], T[4];
cin >> S;
cin >> T;
分别输入"ABC"和"EFG"值后发现S会包含了T的内容.S="ABCEFG" T="EFG". 为什么会有这种情况?是不是buffer问题?
我就是连续用两次cin啊.结果有问题了.
cout << "Input S:" << endl;
cin>>S;
cout << "Input T:"<<endl;
cin>>T;
怎么可能?S只有4个元素,怎么变成6个?另外输入时应用回车分开。
怎么可能?S只有4个元素,怎么变成6个?另外输入时应用回车分开。
debug时发现S的内容是六位,此时肯定是溢出了. 其实我有提示:
cout << "Input S:" << endl;
cin>>S;
cout << "Input T:"<<endl;
cin>>T;
抱歉,没写详细. 但是输入时是分开了的,不关事.
我用这个版本还是有问题,而且当S字符串被全部转成大写后,T字符串也跟着转成大写了.感觉怎么像变成共用地址了?
#include <iostream>
#include <string.h>
#include <iomanip> //for cout setw()
#include <stdio.h>
using namespace std;
//Sequence S and T
char S[4], T[4];
int alph_len = 0, sta_len = 0;
int sLength = 0, tLength = 0;
void main()
{
//Input alphabet number
cout << ("Input alphabet number:\n");
cin >> alph_len;
cout << ("Input state number:\n");
cin >> sta_len;
//Input S & T values
cout << "Input S:" ;
cin>>S;
cout << "Input T:";
cin>>T;
sLength = strlen(S);
tLength = strlen(T);
strupr(S);
strupr(T);
}
我用这个版本还是有问题,而且当S字符串被全部转成大写后,T字符串也跟着转成大写了.感觉怎么像变成共用地址了?
#include <iostream>
#include <string.h>
#include <iomanip> //for cout setw()
#include <stdio.h>
using namespace std;
//Sequence S and T
char S[4], T[4];
int alph_len = 0, sta_len = 0;
int sLength = 0, tLength = 0;
void main()
{
//Input alphabet number
cout << ("Input alphabet number:\n");
cin >> alph_len;
cout << ("Input state number:\n");
cin >> sta_len;
//Input S & T values
cout << "Input S:" ;
cin>>S;
cout << "Input T:";
cin>>T;
sLength = strlen(S);
tLength = strlen(T);
strupr(S);这两句是搞什么的啊 函数调用吗?函数呢?
strupr(T);
}
不太明白,你什么意思啊!可能我学艺不精吧?不好意识啊