Pergunta

Meu problema está convertendo um char para string que eu tenho que passar para strcat () um char para anexar a uma string, como posso fazer?obrigado!

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

char *asd(char* in, char *out){
    while(*in){
        strcat(out, *in); // <-- err arg 2 makes pointer from integer without a cast
        *in++;
    }
    return out;
}

int main(){
    char st[] = "text";
    char ok[200];
    asd(st, ok);
    printf("%s", ok);
    return 0;
}
Foi útil?

Solução

O aplicativo do SharePoint precisa de permissões para a lista usada na coluna de pesquisa, bem como a lista que você está consultando ou só pode recuperar o ID e não o nome.

Outras dicas

strcat não anexará caracteres únicos. Em vez disso, é preciso um const char* (uma string completa no estilo C) que é anexado à string no primeiro parâmetro. Portanto, sua função deve ler algo como:

char *asd(char* in, char *out)
{
    char *end = out + strlen(out);

    do
    {
        *end++ = *in;

    } while(*in++);

    return out;
}

O loop do Do-While incluirá o terminador zero, necessário no final das cordas do estilo C. Verifique se a sua string externa é inicializada com um terminador zero no final ou este exemplo falhará.

E como um aparte: pense sobre o que *in++; faz. Irá incrementar in e desreferente, que é o mesmo que in++, então o * é inútil.

Olhando seu código, posso fazer algumas dicas em relação a ele, isso não é uma crítica, aceite isso com uma pitada de sal que permitirá que você seja um programador C melhor:

  • Nenhum protótipo de função.
  • Uso incorreto de ponteiros
  • Lidando com o strcat função é usada incorretamente.
  • Exagerar - não há necessidade do asd funcionar em si!
  • Uso de lidar com variáveis ​​​​notavelmente char matriz que não foi inicializada corretamente.
#include <stdio.h>
#include <string.h>

int main(){
    char st[] = "text";
    char ok[200];
    ok[0] = '\0'; /* OR
    memset(ok, 0, sizeof(ok));
    */
    strcat(ok, st);
    printf("%s", ok);
    return 0;
}

Espero que isso ajude, cumprimentos, Tom.

Para converter um personagem em uma string (NULL Terminated), você pode simplesmente fazer:

char* ctos(char c)
{
    char s[2];
    sprintf(s, "%c\0", c);
    return s;
}

Exemplo de trabalho: http://ideone.com/cfav3e

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top