开发者

How to convert char pointer into char in C Open VMS

开发者 https://www.devze.com 2023-04-13 05:24 出处:网络
This is to convert from char pointer into char. I followed the codes from another topi开发者_Python百科c but it seems like it\'s not working to me.

This is to convert from char pointer into char.

I followed the codes from another topi开发者_Python百科c but it seems like it's not working to me. I am using Open VMS Ansi C compiler for this. I don't know what's the difference with another Platform.

main(){

char * field = "value1";
char c[100] = (char )field;

printf("c value is %s",&c);

}

the output of this is

c value is

which is unexpected for me I am expecting

c value is value1

hope you can help me.


strcpy(c, field);

You must be sure c has room for all the characters in field, including the NUL-terminator. It does in this case, but in general, you will need an if check.

EDIT: In C, you can not return an array from a function. If you need to allocate storage, but don't know the length, use malloc. E.g.:

size_t size = strlen(field) + 1; //  If you don't know the source size.
char *c = malloc(size);

Then, use the same strcpy call as before.


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

int main(){

    char * field = "value";

    char c[100]="";
    strncpy(c,field,100);

    printf("c value is %s",c);
    return 0;
}


In C, the char type holds a single character, not a string. char c[100]; doesn't allocate a char of length 100, it allocates an array of 100 consecutive chars, each one byte long, and that array can hold a string.

So what you seem to want to do is to fill an array of chars with the same char values that are at the location pointed at by a char *. To do that, you can use strncpy() or any of several other functions:

strncpy(c,field,100); /* copy up to 100 chars from field to c */
c[99] = '\0';         /* ..and make sure the last char in c is '\0' */

..or use strcpy() since you know the string will fit in c (better in this case):

strcpy(c,field);

..or:

snprintf(c,100,"%s",field);
0

精彩评论

暂无评论...
验证码 换一张
取 消