gpt4 book ai didi

c - 在 C 语言中,%s 无法与我的返回值正常工作

转载 作者:行者123 更新时间:2023-11-30 18:27:09 25 4
gpt4 key购买 nike

正如标题所示,%s 无法正常工作这是一场代码大战,因此 %s 需要能够与数组配合才能通过示例测试用例;无法更改 playPass 的函数声明。使用 Ascii 表。此外,在 main() 中打印的 for 循环也有效,并给出了正确的输出。

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

// takes a string and shifts letter n value;
// lower cases every other element if it contains a letter
// replaces number with a 9 complement
// returns array with values reversed.
char* playPass(char* s, int n)
{
int length = strlen(s);
char *pass= (char *)malloc(length*sizeof(char)+1);
char a;
int letter, i;


for(i=0; i< length; i++)
{
a = s[i];
letter = a;

if( letter >= 65 && letter <=90 )
{

letter +=n;

if(letter >90)
{
letter -=90;
letter +=64;
}
if((i+1) % 2 == 0 )
{
letter += 32;

}

a = letter;

}
else if(letter >= 48 && letter <= 57)
{
letter -= 48;
letter = 9 - letter;
a = letter + '0';
}

pass[length - i] = a;
}

return pass;
}
// answer should be
int main (){

char* s ={"I LOVE YOU!!!"};
int length = strlen(s);
int k = 1;
s =playPass( s,k );
int i;
printf(" %s", s);
for(i = 0; i <= length; i++)
{
printf(" %c", s[i]);
}

}

最佳答案

%s 仅适用于 null 终止的 char *

char* playPass(char* s, int n) {


for() {

}
pass[i] = '\0'; //Null terminate here.
return pass;
}

关于c - 在 C 语言中,%s 无法与我的返回值正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58926774/

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