Autor
|
Tema: [DUDA] añadir espacios al utilizar la función strcat (Leído 16,643 veces)
|
Dryken
Desconectado
Mensajes: 117
El arte de vencer se aprende en las derrotas
|
Estaba probando hacer un simple automatizador de netcat cuando me ha surgido un problema. Trata de que strcat concatena funciones y te devuelve la función final con la suma de todo, pero quiero que en dicha suma haya 2 espacios. Quiero pasar de ncIPPuerto ----> nc IP Puerto El código que tengo es este. #include <stdio.h> #include <string.h> #include <windows.h> int main(){ char puerto[25], ip[25]; char netcat[]="nc"; printf("Introduce la IP:\t"); scanf("%s",&ip); printf("Introduce el puerto:\t"); scanf("%s",&puerto); strcat(netcat,ip); strcat(netcat,puerto); system(netcat); while(getchar() !='\n'); getchar(); }
|
|
« Última modificación: 8 Agosto 2012, 17:46 pm por Dryken »
|
En línea
|
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
Utiliza la misma funcion strcat() para concatenar nc con un espacio, y lo mismo con la otra cadena.
Saludos.
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
Dryken
Desconectado
Mensajes: 117
El arte de vencer se aprende en las derrotas
|
daniyo eso lo probe hace tiempo y no funciono por eso lo preguntaba, no es tan simple como parece. Tu te refieres a por ejemplo esto... char puerto[25], ip[25], espacio[5]=" "; char netcat[]="nc";
printf("Introduce la IP:\t"); scanf("%s",&ip); printf("Introduce el puerto:\t"); scanf("%s",&puerto); strcat(netcat,ip); strcat(netcat,espacio); strcat(netcat,puerto);
system(netcat); while(getchar() !='\n'); getchar(); Da problemas al ejecutar. Si coloco tambien espacio[5]=""; , vamos sin el espacio de por medio sigue sin dejar espacio.
|
|
|
En línea
|
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
Pues prueba con "\t".
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
Dryken
Desconectado
Mensajes: 117
El arte de vencer se aprende en las derrotas
|
Tampoco va daniyo al colocar espacio[5]=" \t";. Al colocar /t lo que sucede es que la siguiente función strcat(netcat,puerto); no se muestra por pantalla, aparece con el /t todas las funciones antes que de esta sea utilizada. queda así ncxxx.xxx.xxx.xxx
|
|
|
En línea
|
|
|
|
durasno
Desconectado
Mensajes: 373
|
Hola! busca sprintf
Saludos
|
|
|
En línea
|
Ahorrate una pregunta, lee el man
|
|
|
do-while
Desconectado
Mensajes: 1.276
¿Habra que sacarla de paseo?
|
¡Buenas! De un primer vistazo lo que veo es que el problema puede estar en que la cadena netcat solo tiene 3 posiciones de memoria ({'n','c','\0'}). Prueba a darle mayor dimension y cuentanos. char netcat[30]="nc"
¡Saludos!
|
|
|
En línea
|
- Doctor, confundo los números y los colores. - Vaya marrón. - ¿Marrón? ¡Por el culo te la hinco!
|
|
|
Dryken
Desconectado
Mensajes: 117
El arte de vencer se aprende en las derrotas
|
durasno hebuscado como me has dicho y he probado la función sprintf. he visto que la ventaja que tiene es que en comparación con strcat permite espacios pero no permite ejecutar funciones del sistema system(); Aquí se puede ver que concatena con espacios y luego imprime por pantalla. No he colocado system(netcat); porque entonces no funciona. vamos que con esta función estoy con las mismas, tiene un lado positivo y otro negativo. Os he dejado el código para que lo veáis de ejemplo. #include <stdio.h> #include <windows.h> int main(){ char puerto[25], ip[25], netcat[80]; printf("Introduce la IP:\t"); scanf("%s",&ip); printf("Introduce el puerto:\t"); scanf("%s",&puerto); sprintf(netcat, "\nnc %s %s\n", ip, puerto); puts(netcat); getchar(); }
Por cierto do-while probé a colocar una dimensión mayor pero no funcionó, seguramente será otra cosa. Pufff...te pones a pensar y te das cuenta que colocar un simple espacio no es tán fácil como parece en strcat y que en sprintf no es posible ejecutar system(); , a ver si consigo hallar la forma en strcat.
|
|
|
En línea
|
|
|
|
Fire544
Desconectado
Mensajes: 85
"Escucha el sonido del 0, 1"
|
Hola Dryken: mira todo lo que haces esta bien, tienes que dejar cada char [], con un espacio antes de concatenar, intenta hacer esto. "nc ", " ip", " puerto". char vector[]="nc ";
Si te fijas en el codigo, todo bien pero algo ilogico, porque a lo mejor lo has intentado, pero fijate cuando termino de inicializar mi vector al declararlo, dejo el ultimo bytes en " ", esto es para concatenar con espacios, ten esto en cuenta y hazlo con char ip[], puerto[], a lo mejor puerto seria int, entonces haces un cast " strcat(vector, (int)puerto);"
|
|
« Última modificación: 9 Agosto 2012, 04:19 am por Fire544 »
|
En línea
|
"Si enseñas a pezcar a un niño lo ayudas para toda la vida, si pezcas para alimentarlo lo ayudas por un momento".
|
|
|
durasno
Desconectado
Mensajes: 373
|
no permite ejecutar funciones del sistema system(); nose de donde sacaste eso. Lo unico que hace sprintf es almacenar una cadena, con cierto formato, en un arreglo; en tu caso en netcat Ejemplo simple: int main(void) { char a[]="dir"; char b[]="Java" //es una carpeta que tengo en el escritorio char cmd[20]; sprintf(cmd ,"%s %s",a ,b ); // armo el comando a ejecutar system(cmd ); // ejecuto: dir Java //system("PAUSE"); }
No uso nc ya que la consola no me reconoce el comando como valido(hay q instalarlo?? :S) Saludos
|
|
|
En línea
|
Ahorrate una pregunta, lee el man
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[SOLUCIONADO]-[ayuda] funcion cambiar linea al estilo space para dejar espacios
.NET (C#, VB.NET, ASP)
|
faralito
|
3
|
4,903
|
29 Enero 2009, 16:02 pm
por faralito
|
|
|
Añadir la función buscar a mi web
Desarrollo Web
|
chocola
|
3
|
3,616
|
23 Noviembre 2011, 05:11 am
por DarK_FirefoX
|
|
|
[Duda C] Como añadir variable a la función system()
« 1 2 »
Programación C/C++
|
Dryken
|
10
|
9,606
|
3 Julio 2012, 14:28 pm
por Dryken
|
|
|
Espacios en concatenación strcat.
« 1 2 »
Programación C/C++
|
programator11
|
13
|
7,616
|
7 Agosto 2014, 20:05 pm
por rir3760
|
|
|
¿Se puede añadir una funcion a string.h?
« 1 2 »
Programación C/C++
|
mester
|
10
|
5,867
|
25 Diciembre 2015, 01:55 am
por mester
|
|