A drugi problem je pri ispisu C nizova pomoću druge FOR petlje, ispisani nizovi imaju duljine veće od 28 znakova (tj. imaju više od 28 znakova)??? Te evo molim vas da mi pokažete i objasnite u čemu je problem???
Zadatak ovoga djela programa je da sa zadanim stringom u ovome slučaju C[0] i D[0] vrši rotiranje znakova u ljevo... I to tako da stvori 16 novih stringova ( C[1] , C[2], ... , C[16] i D[1] , D[2], ... , D[16] ) pri čemu je svaki pomaknut u odnosu na predhodni za 1 ili 2 znaka što ovisi o trenutnoj vrjednosti K.
Code:
#include <iostream>
#include <string>
using namespace std;
void pomicanje_ljevo(char a[], int x, char b[])
{
if(x==1){
char temp=a[0];
for(int s=0;s<27;s++)
b[s]=a[s+1];
b[27]=temp;
b[28]='\0';
}
else{
char temp1 =a[0],temp2=a[1];
for(int s=0;s<26;s++)
b[s]=a[s+2];
b[26]=temp1;
b[27]=temp2;
b[28]='\0';
}
}
int main()
{
char C[17][28],D[17][28];
strcpy(C[0],"0000000011111111111111111001");
strcpy(D[0],"1001001010100111001011100001");
C[0][28]='\0';
D[0][28]='\0';
cout<<C[0]<<endl;
cout<<D[0]<<endl<<endl;
for(int k=0;k<16;k++){
if(k==0 || k==1 || k==8 || k==15){
pomicanje_ljevo(C[k],1, C[k+1]);
pomicanje_ljevo(D[k],1, D[k+1]);
}
else{
pomicanje_ljevo(C[k],2, C[k+1]);
pomicanje_ljevo(D[k],2, D[k+1]);
}
}
for(int z=1;z<17;z++)
{
cout<<"C: "<<C[z]<<endl;
}
return 0;
}
#include <iostream>
#include <string>
using namespace std;
void pomicanje_ljevo(char a[], int x, char b[])
{
if(x==1){
char temp=a[0];
for(int s=0;s<27;s++)
b[s]=a[s+1];
b[27]=temp;
b[28]='\0';
}
else{
char temp1 =a[0],temp2=a[1];
for(int s=0;s<26;s++)
b[s]=a[s+2];
b[26]=temp1;
b[27]=temp2;
b[28]='\0';
}
}
int main()
{
char C[17][28],D[17][28];
strcpy(C[0],"0000000011111111111111111001");
strcpy(D[0],"1001001010100111001011100001");
C[0][28]='\0';
D[0][28]='\0';
cout<<C[0]<<endl;
cout<<D[0]<<endl<<endl;
for(int k=0;k<16;k++){
if(k==0 || k==1 || k==8 || k==15){
pomicanje_ljevo(C[k],1, C[k+1]);
pomicanje_ljevo(D[k],1, D[k+1]);
}
else{
pomicanje_ljevo(C[k],2, C[k+1]);
pomicanje_ljevo(D[k],2, D[k+1]);
}
}
for(int z=1;z<17;z++)
{
cout<<"C: "<<C[z]<<endl;
}
return 0;
}