Jump to content
Fórum Script Brasil
  • 0

Comparação de Strings incorreta


Question

Boa tarde,

O código abaixo basicamente serve para criar um comando próprio chamado "renomeiaDir", eu poderei dar dois parâmetros para ele "renomeiaDir <Diretório Origem> <Diretório Destino>. Essa parte está ok, porem precisarei depois criar mais comandos, e para cada comando precisarei criar um IF, e para entrar no IF criei um while que deve ler a primeira string e guardar na variável "SC", essa variável receberá o comando e será comparado com as variáveis que estão em Comandos, se for igual entra no IF e executa o restante dos parâmetros. Porem esse while e/ou a comparação tem alguma coisa que não estou entendendo que não deixa entrar no IF.

 

Obrigado pelo auxílio.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>


int main() {
	//VARIÁVEIS GLOBAIS ==================================
	char cmd01[60];										//
	char sourceFile[1024];								//
	char destFile[1024];    
	char letra;
	char SC[50];
    int contador = 1;
    int quantidade_comandos = 1;
	char matriz_de_comandos[quantidade_comandos][50];
	//==================================================
	
	//COMANDOS GERAIS ==================================
	char renomearDir[50] = "renomearDir:"; //Aqui seria o conteudo da string para comparar e entrar no if
	char exit[10] = "exit\n";//A comparacao do exit para entrar no IF funciona
	//==================================================
	
		printf("ht-C0mmand >>  ");
   		fflush(stdin);
   		fgets(cmd01, 60, stdin);    
    
    	while(cmd01[contador] != '\0'){  //Aqui separar a string renomearDir e guarda na variavel SC
			SC[contador]=cmd01[contador];
	   		contador++;    	
		}
		
    	printf("|DEBUG: Executed command > %s\n", SC);
    	printf("|DEBUG: Command > %s\n", exit);
        printf("|DEBUG: Command > %s\n", renomearDir);
        
		// RENOMEAR ARQUIVO =============================================================
		if (strcmp(SC, renomearDir) == 0){  //Aqui teria que comparar o conteúdo, se for igual retorna zero e entra no if, mas não acontece
    		printf("Debug| NO IF\n");       //Porem se trocar para 1, queé o retorno de string diferente, ele entra, então seria somente
    		int contador_comandos = 1;		//a comparacao que tem algo que eu ainda não peguei
   			int contador_letras = 0;
    		for (contador=0; contador < strlen(cmd01)-1; contador++) {
        		letra = cmd01[contador];
        	if (letra == ' ') {
            	matriz_de_comandos[contador_comandos-1][contador_letras] = '\0';
            	contador_comandos++;
            	contador_letras = 0;
            	continue;
        		}
        	matriz_de_comandos[contador_comandos-1][contador_letras] = letra;
        	contador_letras++;
    		}
			matriz_de_comandos[contador_comandos-1][contador_letras] = '\0';
   			// BACKUP strcpy(sourceFile, matriz_de_comandos[0]);
    		strcpy(sourceFile, matriz_de_comandos[quantidade_comandos]);
			printf("Debug | first path> %s \n", sourceFile);
			strcpy(destFile, matriz_de_comandos[quantidade_comandos+1]);
    		printf("Debug | second path> %s \n", destFile);
			rename (sourceFile, destFile);
			}  
		//===============================================================================
			// EXIT =========================================================================
		if (strcmp(SC, exit)==0){
			printf("SAINDO!\n=====");	
		}
	    
		
    system("pause");
}

 

Edited by [email protected]
Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148689
    • Total Posts
      644524
×
×
  • Create New...