C语言题目。关于字符串的问题。
发布网友
发布时间:2022-04-29 22:59
我来回答
共5个回答
热心网友
时间:2022-06-25 05:56
一下是我发现的错误
01.在printf("Please input a string:");语句后面的scanf()语句里面,应该写scanf("%c",str[i]);
02.for循环里面,'Y'和'Z'都是左值,不能被赋值。
03.要求是输出转换后的字符串,但整个程序都没有输出。没有必要将修改后的字符存进去,直接输出来就可以了。
希望能帮到你
热心网友
时间:2022-06-25 05:56
'Y' = 'A' 诸如此句的都是错误的 要把'Y'变成'A'并不是这么写的,‘=’是赋值的意思不是等于的意思。因此‘=’号的左边一定是个变量不能是常量;
你可以这样写;
int a,t;
if(str[i] == ‘Y’)
{
str[i] = 'A';
}
热心网友
时间:2022-06-25 05:57
第一个问题是,if语句后面要加大括号(复合语句),参教优酷上“ C学习指南”的第7.1讲
第二个问题: 'Y'='A'; 这种写法完全错误,常量不能被赋值,体现你未能理解变量和常量的意思,参考3.2讲,4.1讲
热心网友
时间:2022-06-25 05:58
#include<stdio.h>
int main(void)
{
char str[80];
int i=0,temp1,temp2;
printf("Please input a string:");
//scanf("%c",str);
while((str[i]=getchar())!='\n')
i++;
str[i]='\0';//<---------------
for(i=0;str[i]!='\0';i++)//<---------------
{ //if(str[i]=='Y')
//temp1='Y';
//'Y'='A';
//if(str[i]=='Z')
//temp2='Z';
//'Z'='B';
//str[i]=(str[i]+2);
if(str[i]>='A'&&str[i]<='Z')
{
str[i]=str[i]+'C'-'A'<='Z'?str[i]+'C'-'A':str[i]+'C'-'Z'-1;
}
}
puts(str);//<---------------
return 0;
}
热心网友
时间:2022-06-25 05:58
'Y'='A';
'Z'='B';
这2句错了。左边必须是变量才能赋值。