c中的字符串数据类型

时间:2012-12-14 09:09:33

标签: c string char

我是C的初学者, 我正在尝试编写一个函数来返回一个字符串。 我知道在C中我们没有字符串数据类型。而不是这些我尝试使用一组字符,但这不是我的解决方案。

char[] my_function(int x){
    if(x>0)
        return 'greaterThanZero';
    else
        return 'smallerOrEqualOfZero';
}

请帮帮我。

4 个答案:

答案 0 :(得分:5)

返回类型需要为const char *,字符串文字需要用双引号括起来:

const char * my_function(int x)
{
    if (x > 0)
        return "greaterThanZero";
    else
        return "lessThanOrEqualToZero";
}

int main(void)
{
    printf("my_function(1)  = %s\n", my_function(1));
    printf("my_function(0)  = %s\n", my_function(0));
    printf("my_function(-1) = %s\n", my_function(-1));
    return 0;
}

请注意,单引号用于char个变量:

char c = 'X';                // single character - single quotes
char *s = "Hello world!";    // string - double quotes

答案 1 :(得分:1)

void my_function(int x, char **ret){
    if(x>0)
        *ret= "greaterThanZero";
    else
        *ret= "smallerOrEqualOfZero";
}

并在主

int main() {
   char *string;
   my_function(1, &string);
   printf("%s",string);
}

另一种方式:

void my_function(int x, char *T){
        if(x>0)
            strcpy(T,"greaterThanZero");
        else
            strcpy(T, "smallerOrEqualOfZero");
    }

并在主

int main() {
   char string[100];
   my_function(1, string);
   printf("%s",string);
}

答案 2 :(得分:0)

在GreaterThanZero& amp;周围使用双引号smallerOrEqualOfZero。

或者,您也可以返回单个字符(例如g / s)&然后在调用函数中使用condition。

注意:“greaterThanZero”通常会进入const部分,而不是堆栈。因此从函数返回应该是安全的。

答案 3 :(得分:-1)

使用"代替''greaterThanZero'应为"greaterThanZero"