Я пытаюсь достичь простой цели передачи строки функции и возврата структуры, содержащей данные об этой строке. Я написал это, но когда я пытаюсь скомпилировать его, я получаю ошибку времени выполнения, и я не понимаю, почему. Благодарю вас за любезность.Передача строки для функции и возврата структуры
#include <stdio.h>
#include <ctype.h>
#include <string.h>
struct stringStats
{
int length;
int uppercase;
int lowercase;
int digits;
int nonAlphaNum;
};
struct stringStats stringReader (char anyString[])
{
int i;
struct stringStats returned = {0, 0, 0, 0, 0 };
returned.length = strlen(anyString);
for (i = 0; anyString[i] != '\0'; ++i)
{
if (isupper(anyString[i]))
++returned.uppercase;
if (islower(anyString[i]))
++returned.lowercase;
if (isdigit(anyString[i]))
++returned.digits;
if (isalnum(anyString[i]) == 0)
++returned.nonAlphaNum;
}
return returned;
}
int main(void)
{
struct stringStats stored;
char passedString[] = "Th1s string's g0t it all!";
stored = stringReader(passedString);
printf ("%i\n%i\n%i\n%i\n%i\n", stored.length, stored.uppercase, stored.lowercase,
stored.digits, stored.nonAlphaNum);
return 0;
}
@Ganesh я был неправ. он возвращает значение структуры. ничего страшного. –
@ Koushik .. спасибо .. удалил мой комментарий тоже – Ganesh