Imprimir parte de la matriz char

Asi que:

char *someCArray; # something 

Quiero imprimir “ethin” de “algo”.

Puede utilizar el especificador de precisión printf

 #include  int main(void) { char s[] = "something"; int start = 3; int len = 5; printf("%.*s\n", len, s + start); return 0; } 

Código también publicado en el teclado: http://codepad.org/q5rS81ox

Esto haría el trabajo Teniendo en cuenta que desea imprimir solo ” ethin ” no ” ething “.

Como @Mahesh dijo en su comentario, debe indicar la posición inicial y final desde donde desea imprimir caracteres para que su progtwig sea más general.

Char *p ="Something";

char *temp=p; // Teniendo en cuenta que puede que en algún momento necesite la dirección base de su cadena.

temp=temp+3;

while(*temp!='g')

printf("%c",*temp++);

Si fuera más específico acerca de sus necesidades, podemos ayudarlo aún más. Estos son los conceptos básicos del lenguaje C, por lo que debe estudiar minuciosamente las matrices, los punteros en c.

EDITAR:

No podré darle el código completo, ya que esto iría en contra de las reglas de Stackoverflow y de la moto, que es como ” Repositorio técnico y próximo al cielo” para progtwigdores. Por lo tanto, solo puedo darle la lógica.

Siga imprimiendo caracteres hasta que la posición inicial y la final sean iguales o su diferencia sea cero. Puede elegir cualquiera de los dos métodos anteriores.

Tratar

 char* strSth = "something"; std::string strPart; strPart.assign(strSth+3,strSth+8); std::cout << strPart; 

El resultado será: "ethin".

 #include  int main() { char a[1024] = "abcdefghijklmnopqrstuvwxyz"; printf("Characters 0 through 2 of a[]: %.3s\n", a); printf("Characters 10 through 15 of a[]: %.6s\n", &a[10]); return 0; } 

Imprime esto

 Characters 0 through 2 of a[]: abc Characters 10 through 15 of a[]: klmnop 

La notación “% .Ns” en la cadena printf es “% s” con un especificador de precisión. Verifique la página del manual de printf (3)