我有這段代碼。我想要做的是用指定的數字替換每個字符的每個字母。就像A是10,依此類推直到J,19。如果我的char數組中只有一個字母,那麼我的代碼運行良好,但如果我有更多的代碼,它會複製無用的東西。我認爲strncat有些問題。C++用數字替換字符
#include<conio.h>
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
char litera[11]={"ABCDEFGHIJ"};
char cifra[11]={""};
char rezultat[256]={0};
int n;cin>>n;cin.get();
for(int i=0;i<n;i++)
{
char x[256];
cin.get(x,256);cin.get();
int k=strlen(x);
for(int j=0;j<k;j++)
{
int p = strchr(litera,x[j])-litera;
if(p>=0)
{
strncat(rezultat, x,j);
// my p is the indicator for letter and number
strcat(rezultat,"1");
// I'm copying an 1 there because i have numbers
// between 10-19 and in my int array i have only
// the second cipher
strcpy(x,x+j);
rezultat[strlen(rezultat)]=cifra[p];
}
}
cout<<rezultat<<endl;
memset(rezultat,0,sizeof(rezultat));
}
getch();
return 0;
}
Input: 07B, 1AA, C8A
Output: 0711, 11010, 12810
我的輸出: 110AA1 12C810
如果你們能告訴我問題出在哪裏,你會幫我很多,每一個建議是深受好評,即使不是關於這個問題。謝謝!
嘗試,沒有cin.get();它不工作。初始化後。感謝提示,但結果是一樣的。 – user4749795
我正在調查你的循環。很快就會回來! –
謝謝,我讚賞 – user4749795