当前位置: 代码迷 >> C语言 >> [求助]大写转小写,但有错
  详细解决方案

[求助]大写转小写,但有错

热度:168   发布时间:2007-01-01 11:13:26.0
[求助]大写转小写,但有错

void ch(char *s);
#include<stdio.h>
main()
{
char *p="Jegged";
ch(p);
printf("%s",p);
}
void ch(char *s)
{
while(*s)
{
if(*s>='A'&&*s<'Z')
*s+=32;
s++;
}
}

帮忙看看,哪里又错误。

搜索更多相关的解决方案: 小写  

----------------解决方案--------------------------------------------------------
错在哪了?
我的编辑器通过。。。。。
提议你把Jegged转为JEGGeD测试
这样有助于比较 结果

[此贴子已经被作者于2007-1-1 11:36:04编辑过]


----------------解决方案--------------------------------------------------------
我用的是cfree,运行是显示 引用地址错误。
----------------解决方案--------------------------------------------------------
以下是引用jinwenbobull在2007-1-1 11:13:26的发言:

void ch(char *s);
#include<stdio.h>
main()
{
char *p="Jegged";
ch(p);
printf("%s",p);
}
void ch(char *s)
{
while(*s)
{
if(*s>='A'&&*s<'Z')
*s+=32;
s++;
}
}

帮忙看看,哪里又错误。

main函数里面初始化p,将“char *p="Jegged"; ”改为“char p[]="Jegged"; ”就行了 。
----------------解决方案--------------------------------------------------------
````while(*)~~~~

是什么意思啊```
----------------解决方案--------------------------------------------------------
void connect(char *p1,char *p2);
#include<stdio.h>
void main(void)
{
char s1[]="Jegged",s2[]="Jin";
connect(s1,s2);
printf("%s",s1);
}
void connect(char *p1,char *p2)
{
int i=0;
while(*p1)
i++;
while(*p2)
{
*(p1+i)=*p2;
p2++;
i++;
}
*(p1+i)='\0';
}
这还有个类似的,看看哪里有错。

[此贴子已经被作者于2007-1-1 12:10:35编辑过]


----------------解决方案--------------------------------------------------------
以下是引用死了都要C在2007-1-1 11:54:42的发言:
````while(*)~~~~

是什么意思啊```*s
'\0'的acs码为0,所以*s和*s!='\0'是等价的。
----------------解决方案--------------------------------------------------------
void connect(char *s=p1,char *p2);
char *s=p1, 这里不理解.....



----------------解决方案--------------------------------------------------------
以下是引用jinwenbobull在2007-1-1 11:55:37的发言:
void connect(char *p1,char *p2);
#include<stdio.h>
void main(void)
{
char s1[]="Jegged",s2[]="Jin";
connect(s1,s2);
printf("%s",s1);
}
void connect(char *p1,char *p2)
{
int i=0;
while(*p1) // while(*p1)改为while(*(p1+i))
i++;
while(*p2)
{
*(p1+i)=*p2;
p2++;
i++;
}
*(p1+i)='\0';
}
这还有个类似的,看看哪里有错。

[此贴子已经被作者于2007-1-1 12:33:30编辑过]


----------------解决方案--------------------------------------------------------
以下是引用jinwenbobull在2007-1-1 11:13:26的发言:

void ch(char *s);
#include<stdio.h>
main()
{
char *p="Jegged";
ch(p);
printf("%s",p);
}
void ch(char *s)
{
while(*s)
{
if(*s>='A'&&*s<'Z')
*s+=32; /*好像+比*高级吧*,为什么可以这样写啊 */
s++;
}
}

帮忙看看,哪里又错误。


----------------解决方案--------------------------------------------------------

  相关解决方案