Моя программа должна дать мне длину, самый высокий и самый низкий символ слова. Когда я скомпилировать программу, я получаю ошибку:ошибка: формат '% 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;
}
BTW: Абсолютно бесполезно добавлять добавление форвардной декларации * после * определения. Просто оставьте это. – Deduplicator
@Deduplicator Они, возможно, были объявлены в отдельных исходных файлах, и он правильно включил другую функцию, потому что считал, что это может иметь какое-то отношение к его проблеме. – SevenBits
@SevenBits: Вполне возможно. Это либо не обрезает пример достаточно, что бывает легко, либо фактическое отсутствие понимания. Хотя я не мог сказать, что. Ты можешь? – Deduplicator