[英]Question about Character Operations on Strings in C
好的,所以我有一个代码:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
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[] = " <-- spaces at the beginning, spaces at the end -->
";
//Make a new array (initialized to an empty string) to use as temporary storage.
char W[1000] = "";
printf("S1: \"%s\"\n", S1 );
printf("Characters: %d\n", count_characters(S1) );
printf("Words: %d\n", 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: %d\n", count_characters(S2) );
printf("Words: %d\n", 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: %d\n", count_characters(S3) );
printf("Words: %d\n", 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: %d\n", count_characters(S4) );
printf("Words: %d\n", 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: %d\n", count_characters(S5) );
printf("Words: %d\n", 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: " <-- spaces at the beginning, spaces at the end --> "
Characters: 54
Words: 10
Capitalized: " <-- Spaces At The Beginning, Spaces At The End -
-> "
Inverted Capitalization: " <-- SPACES AT THE BEGINNING, SPACES
AT THE END --> "
我对本教程感到困惑,但老师没有为此提出解决方案,我想问某人我该怎么做? 如果是这样,有人可以显示 /* Your Code Here */. 请注意,这不是家庭作业,这是我遇到问题的教程
count_characters(S1)++
在 C 语言中没有意义。 我什至不知道你想用它存档什么。
size_t count_characters(char str[])
{
size_t len;
for (len = 0; str[len] != '\0'; len++){}
return len;
}
int main(void)
{
printf("%zu\n", count_characters("123456"));
}
但正如我所见,您甚至不了解 C 语言的基础知识(for 循环也是无效的)。 我建议你在尝试任何编程之前阅读 C 书并学习一些基本的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.