gpt4 book ai didi

c - strcat(a[1] ,"22") 如何使用? C语言编程

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

我正在尝试制作一个程序,如果前一个字母与将输出的当前字母相同,则会在它们之间放置一个空格...

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define T 100
#define S 255

int main(){
char Arrayinput[T][S];
char Arrayoutput[T][S*5];
int i, c, x;
for(i=0;i<T;i++){
for(c=0;c<S*5;c++){
Arrayoutput[i][c]=0;
}
}
scanf("%d", &x);
getchar();
for(i=0;i<x;i++){
gets(Arrayinput[i]);
}
for(i=0;i<x;i++){
for(c=0;c<strlen(Arrayinput[i]);c++){
switch(toupper(Arrayinput[i][c])){
case 'A':
if(Arrayoutput[i][c-1]=='2')
strcat(Arrayoutput[i]," ");
strcat(Arrayoutput[i],"2"); break;
case 'B':
if(Arrayoutput[i][c-1]=='2')
strcat(Arrayoutput[i]," ");
strcat(Arrayoutput[i],"22"); break;
case 'C':
if(Arrayoutput[i][c-1]=='2')
strcat(Arrayoutput[i]," ");
strcat(Arrayoutput[i],"222"); break;
} } }

for(i=0;i<x;i++){
printf("case #%d:%s\n",i+1,Arrayoutput[i]);
}

system("pause");
return 0;

对于某些情况..

如果我输入..bca 它输出 22 222 2 这是正确的..例如驾驶室 = 222 22 2bac = 22 2 222

但是当我输入时abc 它输出... 2 22222... 我不知道为什么... 请帮忙?

最佳答案

仅仅因为输入 abc 的 'C' 情况的 if(Arrayoutput[i][c-1]=='2') 将始终检查 c-1 位置,即始终” “。

  • 案例 A -> “2”
  • 案例 B ->“2 22”
  • case C -> Arrayoutput[i][c-1]Arrayoutput[i][1] ,它是空格,然后在字符串末尾不添加空格

试试这个

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define T 100
#define S 255

int main(){
char Arrayinput[T][S];
char Arrayoutput[T][S*5];
int i, c, x;
int len;
for(i=0;i<T;i++){
for(c=0;c<S*5;c++){
Arrayoutput[i][c]=0;
}
}
scanf("%d", &x);
getchar();
for(i=0;i<x;i++){
gets(Arrayinput[i]);
}
for(i=0;i<x;i++){
for(c=0;c<strlen(Arrayinput[i]);c++){
len = strlen(Arrayoutput[i]);
switch(toupper(Arrayinput[i][c])){
case 'A':
if((len != 0) && (Arrayoutput[i][len-1]=='2'))
strcat(Arrayoutput[i]," ");
strcat(Arrayoutput[i],"2"); break;
case 'B':
if((len != 0) && (Arrayoutput[i][len-1]=='2'))
strcat(Arrayoutput[i]," ");
strcat(Arrayoutput[i],"22"); break;
case 'C':
if((len != 0) && (Arrayoutput[i][len-1]=='2'))
strcat(Arrayoutput[i]," ");
strcat(Arrayoutput[i],"222"); break;
} } }

for(i=0;i<x;i++){
printf("case #%d:%s\n",i+1,Arrayoutput[i]);
}

return 0;
}

输出

enter image description here

关于c - strcat(a[1] ,"22") 如何使用? C语言编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28238503/

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