繁体   English   中英

关于C中字符串字符操作的问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM