C语言初学者问题~~`HELP~!!@!!!!!!!!!!!!!!!!!!!!!!!!!!!
/* 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转化成大写(若
该位置上不字符或已经是大写的,则不转换)
例如:若输入abc4EFg 则应输出aBc4EFg */
#include <stdio.h>
#include <string.h>
fun(char ss[])
{
int i,k,w=1;
k=strlen(ss);
for(i=1;i <=k;i=2*i+1)
if( 'a ' <=ss[i] && ss[i] <= 'z ')
ss[i]=ss[i]-32;
}
main()
{
char ss[100];
gets(ss);
fun(ss);
puts(ss);
}
不知道为什么错了`!~~!~!~ 如果输入bbbbbbbbbbbbbbbbbbb答案就错了```~!~!
555555555555555555555HELP`~!~ 谢谢各位大虾~~
[解决办法]
步长错了!
#include <stdio.h>
#include <string.h>
fun(char ss[])
{
int i=1;
while (ss[i]!= '\0 ')
{
if( 'a ' <=ss[i] && ss[i] <= 'z ')
ss[i]=ss[i]-32;
i=i+2;
}
}
main()
{
char ss[100];
gets(ss);
fun(ss);
puts(ss);
getch();
}
[解决办法]
不好意思错了,更正一下~~
#include <stdio.h>
#include <string.h>
fun(char ss[])
{
int i,k,w=1;
k=strlen(ss);
for(i=0;(2*i+1) <=k;)
if( 'a ' <=ss[2*i+1] && ss[2*i+1] <= 'z ')
ss[2*i+1]=ss[2*i+1]-32;
}
main()
{
char ss[100];
gets(ss);
fun(ss);
puts(ss);
}