我只是一名学生,我想在c ++中了解这个数组。
如何显示阵列k
上输入的所有字母数字字符到数组n
以及数组t
上的所有非字母数字?
这就是我所做的,我不知道下一步是什么
int main(int argc, char *argv[])
{
char k[8], n[8], t[8];
int ctr, nctr, tctr;
for(ctr=0; ctr<8; ctr++){
cout << "Input 1st Element ";
cin >> k[ctr];
if (isalnum(k[ctr]))
答案 0 :(得分:0)
如何显示阵列k上输入的所有字母数字字符到数组n以及数组t上的所有非字母数字?
我假设&#34;显示&#34;你是说&#34;复制&#34;?只需使用条件:
int ctr, nctr = 0, tctr = 0; // note how I explicitly set the counters to 0
for (ctr = 0; ctr < 8; ctr++)
{
cout << "Input Element " << ctr << ": ";
cin >> k[ctr];
if (isalnum(k[ctr]))
{
n[nctr++] = k[ctr];
}
else
{
t[tctr++] = k[ctr];
}
}
如果这不是您想要的,请提供更多信息。
答案 1 :(得分:0)
#include <string.h>
#include <iostream>
using namespace std;
int main(void) {
char k[8], n[8], t[8];
strcpy(k,"--------");
strcpy(n,"--------");
strcpy(t,"--------");
for (int pos = 0, tcntr = 0, ncntr =0; pos < 8; pos++) {
cout<<"Input your char < : ";
cin>>k[pos];
if (isalnum(k[pos])) {
n[ncntr] = k[pos];
ncntr++;
} else {
t[tcntr] = k[pos];
tcntr++;
}
}
cout<<"Alpha numernic chars ::"<<n<<endl;
cout<<"Non Aplha numberic chars ::"<<t<<endl;
}
Input your char < : 3
Input your char < : ^
Input your char < : d
Input your char < : &
Input your char < : f
Input your char < : 1
Input your char < : 7
Input your char < : 1
Alpha numernic chars ::3df171--
Non Aplha numberic chars ::^&------
答案 2 :(得分:0)
如果允许使用STL,那么partition_copy
是最佳解决方案。您可以通过检查给定的谓词(在您的情况下char是否为字母数字)将数组k
拆分为两个数组n
和t
。像这样:
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
int main(int argc, char *argv[])
{
const size_t len = 8;
char k[len], n[len], t[len];
// Input your data...
// Copy all alphanumeric chars in n and non-alphanumeric to t
partition_copy(k, k + len, n, t, isalnum);
}