有谁可以帮我解一下C语言中这道题目,谢了
voidfun(char*p){inti=0;while(p[i]){if(p[i]=="&&islower(p[i-1]))p[i-1]=p[i-1]-'a'+A;i+...
void fun (char *p)
{int i=0;
while (p[i])
{if (p[i]=="&&islower(p[i-1])) p[i-1]=p[i-1]-'a'+A;
i++
}
}
main ()
{char s1[100]="ab cd EFG!";
fun(s1); printf ("%s\n",s1); 为什么运行后输出结果是aB cD EFG! 展开
{int i=0;
while (p[i])
{if (p[i]=="&&islower(p[i-1])) p[i-1]=p[i-1]-'a'+A;
i++
}
}
main ()
{char s1[100]="ab cd EFG!";
fun(s1); printf ("%s\n",s1); 为什么运行后输出结果是aB cD EFG! 展开
5个回答
展开全部
你就是想把小写字母转换成大写字母。
p[i]==" 这个东西要干嘛?
p[i]==" 这个东西要干嘛?
追问
不知道啊,题目上就是这样的是2010年9月份的一到二级题目
追答
那应该就是空格,
if (p[i]=="&&islower(p[i-1])) p[i-1]=p[i-1]-'a'+A;
你理解下这句的意思,如果是空格而且是小写字母,就将该字符转换成小写字母。
难道真有字符既是 空格 又是 小写字母 的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、你想要达到什么目标?
2、程序本身就有问题,先把完成程序粘贴出来;
3、你为什么要处理p[i]的时候去判断p[i-1],处理第一个的时候不就出问题了?
2、程序本身就有问题,先把完成程序粘贴出来;
3、你为什么要处理p[i]的时候去判断p[i-1],处理第一个的时候不就出问题了?
更多追问追答
追问
不知道啊,题目上就是这样的是2010年9月份的一到二级题目
追答
程序本身是无法编译通过的,就是说或里面有些地方写错了。比如里面的双引号,是不是应该是两个单引号你看错了?
还有这个程序是不是让你挑错并修正改成正确模式呢,里面错误的地方:
1、i=0的时候不可能去判断p[i-1],内存越界啊;
2、你的A也应该是'A'
如果是全部转换成大写,前面的p[i]==''(这里是两个单位号)压根就不需要。
附一个编译通过的,友情提醒,注意格式:
void fun (char *p)
{
int i=0;
while (p[i])
{
if (islower(p[i-1]))
{
p[i-1] = p[i-1]-'a'+ 'A';
}
i++;
}
}
int main()
{
char s1[100]="ab cd EFG!";
fun(s1);
printf ("%s\n",s1);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错误不少啊
if (p[i]=="&&islower(p[i-1])) p[i-1]=p[i-1]-'a'+A;
=> p[i] 应该是和空格进行判断
=> A应该加上单引号的
if (p[i]== ' ' && islower(p[i-1])) p[i-1]=p[i-1]-'a'+'A';
if (p[i]=="&&islower(p[i-1])) p[i-1]=p[i-1]-'a'+A;
=> p[i] 应该是和空格进行判断
=> A应该加上单引号的
if (p[i]== ' ' && islower(p[i-1])) p[i-1]=p[i-1]-'a'+'A';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的这个程序是干嘛了?小写转大写?你islower前边为啥要加个 "&&
追问
不知道啊,题目上就是这样的是2010年9月份的一到二级题目
追答
LZ好好再对照下程序哟,你的程序,是运行不下来的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询