c# 如何访问指针中的字符串?

alen0pnh  于 2022-11-20  发布在  C#
关注(0)|答案(1)|浏览(264)

正如题目所说,这是我的作业。我需要写一个函数,接收一个字符串的一个常数点。然后,我需要检查,以确保它包含10个数字,没有字母在其中。
这是我要做的一个例子,很明显有什么地方出错了。我的代码就停了。我的想法很简单,检查每个数组是否等于一个数字,如果不等于,就改变标志。与数字的个数相同。我做了一些测试,指针[0]未显示常规字符(或者假设是什么)。我被困在试图访问这个指针的单个字符而不是整个字符串。
注意:我不应该改变主函数,我应该只写被调用的函数。指针发送数字让函数验证。

int main(void)
{
    char num1[11] = "2";
    char num2[11] = "a123";
    char num3[11] = "4162135678";

    display(num1);
    display(num2);
    display(num3);
}

void display(const char* pointer)
{
    int count=0, i, flag =1;

    for (i = 0; pointer[i] != '\0'; i++)
    {
        if (pointer[i] == '0' || pointer[i] == '1' || pointer[i] == '2' || pointer[i] == '3' ||      pointer[i] == '4'
            || pointer[i] == '5' || pointer[i] == '6' || pointer[i] == '7' || pointer[i] == '8' || pointer[i] == '9')
        {         
            if (i > 9)
            {
                flag = 0;
            }
        }
        else 
        {
            flag = 0;
        }
    }

    if (flag)
    {
        printf("%s", pointer);
    }
    else
    {
        printf("Number not exactly 10 digits or not all are digits.");
    }
}
tag5nh1u

tag5nh1u1#

我也不确定sizeof(pointer)是否会返回字符串的大小,或者这只是一个c++的问题。

void display(const char* pointer) {
    int count=0, i, flag =1;
    if(sizeof(pointer) < 10) {
        printf("String has less than 10 characters);
        return;
    }
    for (i = 0; i < sizeof(pointer); i++){
        if (pointer[i] < '0' || pointer[i] > '9'){
            flag = 0;
            break;
        }
     }
     if(flag)
         printf("%s", pointer);
     else
         printf("Does not contain all numbers");
}

相关问题