使用指针来计算_和!在C中的主函数之外的字符串中

时间:2018-02-25 17:46:39

标签: c pointers getchar

我正在为学校做作业,但我无法获得正确的输出。我不确定我的循环是否存在问题,或者使用指针保存值的方法存在问题。当我运行代码时,我最终会得到这样的结果:

Output: There are 369224989 underscores and 0 exclamation points in the sentence. 

赋值指定使用原型和getchar()函数来读取输入。我觉得因为第一个值是如此之高,这是我的循环问题,但我已经在这两天工作,并没有看到任何错误(虽然我可以在这一点盯着它)。登记/> 另外,当我尝试编译程序时,我会收到这些警告:

characters.c:28: warning: value computed is not used
characters.c:31: warning: value computed is not used

这让我觉得它可能与主要功能没有正确沟通。

#include<stdio.h>
 //this function prototype was required for the assignment

void count(int* num_, int* num_exclamation);

// intended to count the number of _ and ! in a string using pointers

int main()
{
        int num_, num_exclamation;

        count(&num_, &num_exclamation);

        return 0;
}


void count(int* p_num_, int* p_num_exclamation)
{
        char ch;

        *p_num_ = *p_num_exclamation = 0;

        //attempts to scan a string get the first character
        printf("Enter a sentence: ");
        ch = getchar();

        //attempts to loop while incrementing if it is a ! or _

        while(ch != '\n')
                {
                if(ch == '_')
                        *++p_num_;

                if(ch == '!')
                        *++p_num_exclamation;

                ch = getchar();

                }
        //prints result

        printf("Output: There are %d underscores and %d exclamation points 
in the sentence.\n", *p_num_, *p_num_exclamation);

}

这是我第二次真正与指针交互,第一次是这个任务的另一半正常工作。我对他们并不是特别熟悉,也没有意识到他们所有的细微差别。任何让我在正确的地方寻找的建议都将不胜感激。

0 个答案:

没有答案