мне нужна помощь в следующем:Создать массив строк из входной строки
Отдельные каждый последовательный массив прописные, строчные буквы и цифры в отдельные строки из входной строки. Предположим, что входная строка содержит только прописные, строчные буквы и цифры. Строка ввода не имеет пробелов.
Example:
Input string: thisIS1inputSTRING
OUTPUT:
1. string: this
2. string: IS
3. string: 1
4. string: input
5. string: STRING
Следующая программа не дает никаких выходных данных:
#include <stdio.h>
#include <string.h>
#include<ctype.h>
int main() {
char str[512], word[256];
int i = 0, j = 0;
printf("Enter your input string:");
gets(str);
while (str[i] != '\0') {
//how to separate strings (words) when changed from
//uppercase, lowercase or digit?
if (isdigit(str[i]) || isupper(str[i]) || islower(str[i])) {
word[j] = '\0';
printf("%s\n", word);
j = 0;
} else {
word[j++] = str[i];
}
i++;
}
word[j] = '\0';
printf("%s\n", word);
return 0;
}
'если (isdigit (str [i]) || isupper (str [i]) || islower (str [i])) 'всегда будет истинным. Таким образом, вы устанавливаете первый символ слова '' '' 0 'много раз и печатаете его много раз. –
@Cool Guy Setting (str [i] == '') в выражении if будет отделять слова от входной строки, если входная строка имела пробелы. Можно ли только изменить оператор if в приведенной выше программе, чтобы разделение продолжалось после каждого изменения в верхнем, нижнем регистре или цифре? – user300048
Необходимо изучить характер изменений типа. – BLUEPIXY