我的程序应该给我一个字的长度,最高和最低字符。 当我编译程序出现错误:错误:format'%s'需要类型'char *'的参数?
error: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[64]’ [-Werror=format=]
scanf("%62s", & cString);
这将是非常好的,如果有人可以给我这个!
#include <stdio.h>
int stringstats(char sString[], char *cGroesster, char *cKleinster)
{
//Variablen deklarieren
int iLength = 0;
int i = 0;
*cKleinster = sString[0];
*cGroesster = sString[0];
while (sString[iLength] != '\0')
{
iLength++;
}
for (i = 0; i <= iLength - 1; i++)
{
if (sString[i] < *cKleinster)
{
*cKleinster = sString[i];
}
if (sString[i] > *cGroesster)
{
*cGroesster = sString[i];
}
}
return iLength;
}
//Funktion deklarieren
int stringstats(char[], char *, char *);
#define LENGTH 64
int main(void)
{
//Variablendeklaration
char cString[LENGTH] = {0};
int iLength = 0;
char cGroesster = 0;
char cKleinster = 0;
while (1)
{
//Benutzereingabe String
printf("Bitte einen String eingeben ('q' fuer Beenden) \n");
scanf("%62s", & cString);
//that`s where my problem is
//Abbruchbedingung pruefen
if (cString[0] == 'q' && cString[1] == '\0')
{
break;
}
//Funktion stringstats aufrufen
iLength = stringstats(cString, &cGroesster, &cKleinster);
printf("Laenge: %i \n", iLength);
printf("Kleinster Buchstabe: %c \n", cKleinster);
printf("Groesster Buchstabe: %c \n\n", cGroesster);
}
return 0;
}
顺便说一句:在定义之后添加前向声明绝对没有用处。只是把它留下。 – Deduplicator 2014-11-22 22:20:17
@Deduplicator它们可能已经在单独的源文件中声明,并且他正确地包含了另一个函数,因为他认为这可能与他的问题有关。 – SevenBits 2014-11-22 22:30:41
@SevenBits:很有可能。它要么不能很好地修剪这个例子,这很容易发生,或者实际上缺乏理解。虽然我不能说哪个。你可以吗? – Deduplicator 2014-11-22 22:41:08