gpt4 book ai didi

c - 在c中传递数组元素指针

转载 作者:太空宇宙 更新时间:2023-11-04 03:31:14 25 4
gpt4 key购买 nike

我有一个相对简单的问题。用户应该运行该程序,输入不超过 30 个字符的消息,然后将切换消息中各个字母的大小写。(小写字母将变为大写,反之亦然)。除了改变案例的部分,一切都很好。我应该使用指向数组中 char 的指针并将其作为函数参数传递给 toggle_case。请协助我如何实现这一目标。这是代码。

  #include <stdio.h>
#include <ctype.h>
#include <string.h>

void read_message(char *message, int *message_size);
void toggle_case(char *character);
void count_cv(char* message);

int main() {

char message[30];
int message_size;

char *message_pointer;
message_pointer = message;

read_message(message, &message_size);
int i = 0;
for(i =0; i<30; i++){
toggle_case(&message_pointer[i]);
}
printf("New string: %s",message);
return 0;
}

void read_message(char *message, int *message_size){
printf("Enter your string (maximum 30 characters): ");
fgets(message, 30, stdin);
}

void toggle_case(char *character){
//check if character is a letter
if (isalpha(*character)) {
//Check if the character is upper case
if(isupper(*character)){
//convert the character to lower case
tolower(*character);
} else {
//Check if the character is lower case
//convert the character to upper case
toupper(*character);
}
}
}

void count_cv(char* message){

}

最佳答案

tolowertoupper 返回新字符,您需要将其分配回您正在更新的位置。

if (isupper(*character)) {
*character = tolower(*character);
} else {
*character = toupper(*character);
}

顺便说一句,您不需要先检查字符是否为字母。如果不是字母,tolowertoupper 将简单地返回未更改的字符。

关于c - 在c中传递数组元素指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36414577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com