#arrays #c #string
Вопрос:
Хорошо, у меня есть код:
#include lt;stdio.hgt; #include lt;string.hgt; #include lt;ctype.hgt; int count_characters(char str[]){ /* Your Code Here */ } int count_words(char str[]){ /* Your Code Here */ } void capitalize(char str[]){ /* Your Code Here */ } void invert_capitalization(char str[]){ /* Your Code Here */ } int main(){ char S1[] = "Raspberry"; char S2[] = " "; //Contains 0 words, 6 characters char S3[] = "CSc 111 FaLL 2021"; char S4[] = " raspberry pear pineapple banana"; char S5[] = " lt;-- spaces at the beginning, spaces at the end --gt; "; //Make a new array (initialized to an empty string) to use as temporary storage. char W[1000] = ""; printf("S1: "%s"n", S1 ); printf("Characters: %dn", count_characters(S1) ); printf("Words: %dn", count_words(S1) ); strcpy(W, S1); capitalize(W); printf("Capitalized: "%s"n", W ); strcpy(W, S1); invert_capitalization(W); printf("Inverted Capitalization: "%s"n", W ); printf("n"); printf("S2: "%s"n", S2 ); printf("Characters: %dn", count_characters(S2) ); printf("Words: %dn", count_words(S2) ); strcpy(W, S2); capitalize(W); printf("Capitalized: "%s"n", W ); strcpy(W, S2); invert_capitalization(W); printf("Inverted Capitalization: "%s"n", W ); printf("n"); printf("S3: "%s"n", S3); printf("Characters: %dn", count_characters(S3) ); printf("Words: %dn", count_words(S3) ); strcpy(W, S3); capitalize(W); printf("Capitalized: "%s"n", W ); strcpy(W, S3); invert_capitalization(W); printf("Inverted Capitalization: "%s"n", W ); printf("n"); printf("S4: "%s"n", S4 ); printf("Characters: %dn", count_characters(S4) ); printf("Words: %dn", count_words(S4) ); strcpy(W, S4); capitalize(W); printf("Capitalized: "%s"n", W ); strcpy(W, S4); invert_capitalization(W); printf("Inverted Capitalization: "%s"n", W ); printf("n"); printf("S5: "%s"n", S5 ); printf("Characters: %dn", count_characters(S5) ); printf("Words: %dn", count_words(S5) ); strcpy(W, S5); capitalize(W); printf("Capitalized: "%s"n", W ); strcpy(W, S5); invert_capitalization(W); printf("Inverted Capitalization: "%s"n", W ); printf("n"); return 0; }
с выходом
S1: "Raspberry" Characters: 9 Words: 1 Capitalized: "Raspberry" Inverted Capitalization: "rASPBERRY" S2: " " Characters: 6 Words: 0 Capitalized: " " Inverted Capitalization: " " S3: "CSc 111 FaLL 2021" Characters: 17 Words: 4 Capitalized: "CSc 111 FaLL 2021" Inverted Capitalization: "csC 111 fAll 2021" S4: " raspberry pear pineapple banana" Characters: 34 Words: 4 Capitalized: " Raspberry Pear Pineapple Banana" Inverted Capitalization: " RASPBERRY PEAR PINEAPPLE BANANA" S5: " lt;-- spaces at the beginning, spaces at the end --gt; " Characters: 54 Words: 10 Capitalized: " lt;-- Spaces At The Beginning, Spaces At The End - -gt; " Inverted Capitalization: " lt;-- SPACES AT THE BEGINNING, SPACES AT THE END --gt; "
Я был смущен этим уроком, но учитель не предложил решения для этого, и я хотел спросить кого-нибудь, как мне это сделать? И если да, не мог бы кто-нибудь показать, что должно быть внутри /* Вашего кода Здесь */. Обратите внимание, что это не домашнее задание, это учебник, с которым у меня возникают проблемы
Комментарии:
1. Прямо сейчас ваша функция не имеет особого смысла. Любопытно, как ты думаешь
count_characters(S1)
, что бы это сделало. Попробуйте создать переменную перед циклом for, возможно, с именемcounter
, и инициализировать ее до 0. Затем замените всю внутреннюю часть цикла forcounter;
на, а затем верните эту переменную после цикла.2. @RetiredNinja для цикла также интересно.
3. @0___________ Да, заметил это после того, как увидел твой ответ. Запятые-это как 2/3 точки с запятой, не так ли? 🙂
Ответ №1:
count_characters(S1)
не имеет смысла на языке Си. Я даже не знаю, что вы хотели с ним заархивировать.
size_t count_characters(char str[]) { size_t len; for (len = 0; str[len] != ''; len ){} return len; } int main(void) { printf("%zun", count_characters("123456")); }
Но, как я вижу, вы не знаете даже основ языка Си (для цикла также недопустимо). Я бы посоветовал вам прочитать книгу на языке Си и изучить некоторые базовые вещи, прежде чем пытаться что-либо программировать.