como converter de forma simples string para char
16/04/2022
0
não consigo converter e utilizar uma variavel que contem o caminho de extração do arquivo que eu quero dar administrador...
eu já tentei varias coisas mais não consegui, tentei alguns métodos de trasformar string em char e etc, mas não funcionou
só quero que o conteúdo da variavél "C" seja utilizado de forma correta, sou inicianta na programação, alguém pode me dar uma ajuda?
#include<windows.h>
#include<shellapi.h>
#include<string.h>
#include <locale.h>
int main(){
///variaveis
char c[] = "C:\";
char user[200] = "";
char c2[] = "Users\";
scanf("%s", user);
strcat(c, c2);
strcat(c, user);
strcat(c, "\\Documents\");
strcat(c, "teste.exe");
char cchar = (char)(c);
printf("%s",cchar);
//concatena tudo
///roda programa como administrador
char*aplication = "%s", c;
ShellExecute(NULL, "runas", aplication, NULL, NULL, SW_SHOWDEFAULT);
}
eu já tentei varias coisas mais não consegui, tentei alguns métodos de trasformar string em char e etc, mas não funcionou
só quero que o conteúdo da variavél "C" seja utilizado de forma correta, sou inicianta na programação, alguém pode me dar uma ajuda?
#include<stdio.h>
#include<windows.h>
#include<shellapi.h>
#include<string.h>
#include <locale.h>
int main(){
///variaveis
char c[] = "C:\";
char user[200] = "";
char c2[] = "Users\";
scanf("%s", user);
strcat(c, c2);
strcat(c, user);
strcat(c, "\\Documents\");
strcat(c, "teste.exe");
char cchar = (char)(c);
printf("%s",cchar);
//concatena tudo
///roda programa como administrador
char*aplication = "%s", c;
ShellExecute(NULL, "runas", aplication, NULL, NULL, SW_SHOWDEFAULT);
}
Empty
Curtir tópico
+ 0
Responder
Posts
30/03/2023
Stella Oliveira
Aparentemente você está utilizando JAVA, em Java, uma maneira simples de converter uma String em um array de char é usando o método toCharArray() da classe String. Aqui está um exemplo:
O método toCharArray() retorna um array de caracteres que representa a String. Neste exemplo, a variável meuArrayChar conterá os caracteres {'e', 'x', 'e', 'm', 'p', 'l', 'o'}.
Também é possível converter uma String em um char individualmente usando o método charAt() da classe String. Aqui está um exemplo:
String minhaString = "exemplo";
char meuChar = minhaString.charAt(0);
O método charAt() retorna o caractere na posição especificada pelo índice passado como parâmetro. Neste exemplo, a variável meuChar conterá o caractere 'e', que é o caractere na posição 0 da String.
String minhaString = "exemplo"; char[] meuArrayChar = minhaString.toCharArray();
O método toCharArray() retorna um array de caracteres que representa a String. Neste exemplo, a variável meuArrayChar conterá os caracteres {'e', 'x', 'e', 'm', 'p', 'l', 'o'}.
Também é possível converter uma String em um char individualmente usando o método charAt() da classe String. Aqui está um exemplo:
String minhaString = "exemplo"; char meuChar = minhaString.charAt(0);
String minhaString = "exemplo";
char meuChar = minhaString.charAt(0);
O método charAt() retorna o caractere na posição especificada pelo índice passado como parâmetro. Neste exemplo, a variável meuChar conterá o caractere 'e', que é o caractere na posição 0 da String.
Responder
31/03/2023
Arthur Heinrich
Acho que você precisa dar um passo atrás para entender como mapear a memória.
O tipo char armazena apenas 1 caractere (8 bits).
Ao utilizar char[] estamos criando um char array. Uma espécie de vetor contendo caracteres que formam uma string.
Sempre que temos uma string, precisamos de um mecanismo para indicar o fim da string e existem duas maneiras de se fazer isso.
No padrão C, as strings são terminadas por um caractere adicional de código 0 (zero). Por isso são popularmente chamadas de stringZ.
Outras linguagens, como o Pascal, utilizavam originalmente uma string composta de um primeiro caractere, cujo código representa o tamanho da string e, na sequência, a relação dos caracteres. Por ser iniciada pelo tamanho, passou a ser conhecida como Lstring.
Na Lstring, uma vez que o tamanho é armazenado através do primeiro caractere, as strings são limitadas de 0 a 255 caracteres.
Depois, foram criados modelos muito mais sofisticados para armazenar strings.
O Delphi, por exemplo, utiliza um tipo String híbrido. Ele é um ponteiro que aponta para o primeiro caractere de uma stringZ. Porém, nos 12 bytes anteriores ao primeiro caractere, existem 3 inteiros de 32 bits. Uma para indicar o número de caracteres, outro para indicar o tamanho do buffer reservado para armazenar a string e o terceiro para armazenar o número de variáveis que fazem referência ao valor armazenado em memória.
Com isto, além de não ser necessário varrer a string para saber seu tamanho, ao atribuir uma variável à outra A:=B;, apenas o ponteiro B é armazenado em A e o contador (reference counter) é incrementado, o que é muito mais eficiente do que copiar o conteúdo da string.
No seu caso, ao concatenar strings, precisa ver se a linguagem que você está utilizando redimensiona o buffer dinamicamente, ou se você precisa explicitamente alocar o espaço previamente. Do contrário, o texto concatenado pode invadir a memória de outras variáveis ou mesmo áreas não mapeadas, que podem causar erros.
O tipo char armazena apenas 1 caractere (8 bits).
Ao utilizar char[] estamos criando um char array. Uma espécie de vetor contendo caracteres que formam uma string.
Sempre que temos uma string, precisamos de um mecanismo para indicar o fim da string e existem duas maneiras de se fazer isso.
No padrão C, as strings são terminadas por um caractere adicional de código 0 (zero). Por isso são popularmente chamadas de stringZ.
Outras linguagens, como o Pascal, utilizavam originalmente uma string composta de um primeiro caractere, cujo código representa o tamanho da string e, na sequência, a relação dos caracteres. Por ser iniciada pelo tamanho, passou a ser conhecida como Lstring.
Na Lstring, uma vez que o tamanho é armazenado através do primeiro caractere, as strings são limitadas de 0 a 255 caracteres.
Depois, foram criados modelos muito mais sofisticados para armazenar strings.
O Delphi, por exemplo, utiliza um tipo String híbrido. Ele é um ponteiro que aponta para o primeiro caractere de uma stringZ. Porém, nos 12 bytes anteriores ao primeiro caractere, existem 3 inteiros de 32 bits. Uma para indicar o número de caracteres, outro para indicar o tamanho do buffer reservado para armazenar a string e o terceiro para armazenar o número de variáveis que fazem referência ao valor armazenado em memória.
Com isto, além de não ser necessário varrer a string para saber seu tamanho, ao atribuir uma variável à outra A:=B;, apenas o ponteiro B é armazenado em A e o contador (reference counter) é incrementado, o que é muito mais eficiente do que copiar o conteúdo da string.
No seu caso, ao concatenar strings, precisa ver se a linguagem que você está utilizando redimensiona o buffer dinamicamente, ou se você precisa explicitamente alocar o espaço previamente. Do contrário, o texto concatenado pode invadir a memória de outras variáveis ou mesmo áreas não mapeadas, que podem causar erros.
Responder
Clique aqui para fazer login e interagir na Comunidade :)