Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C I';我对字符串使用指针有问题_C_String_Function_Pointers - Fatal编程技术网

C I';我对字符串使用指针有问题

C I';我对字符串使用指针有问题,c,string,function,pointers,C,String,Function,Pointers,最后一个函数在第20行出现2次,在第21行出现2次。您需要调用slova()函数,而不仅仅是声明它,并对结果执行一些操作,例如打印结果 参数应该是char*a,而不是char a,因此它是指向字符串的指针,而不是单个字符 您应该使用函数isupper()和islower(),而不是自己检查字符范围 不需要检查(x==0&&y==0);如果它们都是0,那么x==y将为真。您还可以使用一系列的else if,然后在末尾使用else 你有一个额外的是一个函数声明,而不是函数调用。char a声明一个字

最后一个函数在第20行出现2次,在第21行出现2次。

您需要调用
slova()
函数,而不仅仅是声明它,并对结果执行一些操作,例如打印结果

参数应该是
char*a
,而不是
char a
,因此它是指向字符串的指针,而不是单个字符

您应该使用函数
isupper()
islower()
,而不是自己检查字符范围

不需要检查
(x==0&&y==0)
;如果它们都是
0
,那么
x==y
将为真。您还可以使用一系列的
else if
,然后在末尾使用
else


你有一个额外的
末尾,code>是一个函数声明,而不是函数调用。
char a
声明一个字符,而不是一个字符串指针。您不会对函数的返回值做任何操作。
char slova(a);
声明一个字符,这是第一个错误的来源。您包括
但不使用它;不包括它。您包括
但不使用它;使用
isupper()
islower()
。您的函数
slova()
并不总是返回一个值-如果使用该值,这是不好的。无论我输入什么,它总是打印出0。您在
for
行的
末尾有一个额外的
,因此循环是空的。所有修复程序都没有注意到额外的值;非常感谢您总是启用完整的警告。我的编译器警告“for loop有空的正文”我怎样才能做到这一点?
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
#include<math.h>
char slova(char a);
int main()
{
    char a[100];
    fgets(a,sizeof(a),stdin);
    char slova(a);
    return 0;
}
char slova(char a)
{
    int i,x=0,y=0,n;
    n=strlen(a);
    for(i=0;i<n;i++);
    {
        if(*(a+i)>='A' && *(a+i)<='Z') x++;
        if(*(a+i)>='a' && *(a+i)<='z') y++;
    }
    if(y>x) return -1;
    if(y<x) return 1;
    if(x==y || (x==0 && y==0)) return 0;
    
}
11  14  C:\Users\x\Documents\asgsgg.cpp [Error] invalid conversion from 'char*' to 'char' [-fpermissive]
17  12  C:\Users\x\Documents\asgsgg.cpp [Error] invalid conversion from 'char' to 'const char*' [-fpermissive]
20  11  C:\Users\x\Documents\asgsgg.cpp [Error] invalid type argument of unary '*' (have 'int')
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

int slova(char *a);
int main(void)
{
    char a[100];
    fgets(a,sizeof(a),stdin);
    printf("Result: %d\n", slova(a));
    return 0;
}

int slova(char *a)
{
    int i,x=0,y=0,n;
    n=strlen(a);
    for(i=0;i<n;i++)
    {
        if(isupper(*(a+i))) x++;
        if(islower(*(a+i))) y++;
    }
    if(y>x) return -1;
    else if(y<x) return 1;
    else return 0;
}