Here's my code:
char CodificarCesar(char *texto_nao_codificado[256], int chave){
char alf[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','\n','char CodificarCesar(char *texto_nao_codificado[256], int chave){
char alf[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','\n','%pre%'};
char mensagem_codificada[256], mensagem_original[256];
memset(mensagem_codificada,'%pre%',sizeof(mensagem_codificada));
memset(mensagem_original,'%pre%',sizeof(mensagem_original));
strcpy(mensagem_original,texto_nao_codificado);
for(int i=0;i<strlen(mensagem_original);i++)
for(int j=0;j<strlen(alf);j++){
if(mensagem_original[i]==alf[j]){
mensagem_codificada[i]=alf[j+chave];
break;
}else if(mensagem_original[i]==toupper(alf[j])){
mensagem_codificada[i]=toupper(alf[j+chave]);
break;
}else if(isspace(mensagem_original[i])){
mensagem_codificada[i]=" ";
break;
}//else space
}//for j
strcat(mensagem_codificada,"\n");
memset(mensagem_original,'%pre%',sizeof(mensagem_original));
return mensagem_codificada; }
'};
char mensagem_codificada[256], mensagem_original[256];
memset(mensagem_codificada,'%pre%',sizeof(mensagem_codificada));
memset(mensagem_original,'%pre%',sizeof(mensagem_original));
strcpy(mensagem_original,texto_nao_codificado);
for(int i=0;i<strlen(mensagem_original);i++)
for(int j=0;j<strlen(alf);j++){
if(mensagem_original[i]==alf[j]){
mensagem_codificada[i]=alf[j+chave];
break;
}else if(mensagem_original[i]==toupper(alf[j])){
mensagem_codificada[i]=toupper(alf[j+chave]);
break;
}else if(isspace(mensagem_original[i])){
mensagem_codificada[i]=" ";
break;
}//else space
}//for j
strcat(mensagem_codificada,"\n");
memset(mensagem_original,'%pre%',sizeof(mensagem_original));
return mensagem_codificada; }
I'm doing a simple encryption program using cesar's cipher, however in two situations I'm getting segmentation faults in the beyond, apparently both cases showing that the strcat function is involved, and in none of them is it even called.
It's worth noting that in situations where I get segmentation failures are situations where strings with space are inputs.
In the first case it is in the function return, after all the string has been processed correctly.
In the second case it is in the processing of the strings, when the debugger arrives on the line that contains some call to the function strcpy (within the if's of equivalence with some character of the alphabet).
I could not find any similar case researching, nor could I have any idea of what causes or could be causing this. Any help would be welcome.
[EDIT] Thanks @Jefferson Quesado for warning that I was using strcpy
for chars
[EDIT2] Targeting fails only with strings with spaces