关于C字符串转换的问题。求解

ROM__yu 2011-12-29 10:46:19
如题。心手,没入门,希望论坛里的各位大哥多多批评。
下面是代码
#include<stdio.h>
#include<memory.h>
char strlen(char str)
{
int i=0;

if(str==NULL)
return 0;
else
{
for(;str!='\0';)
{

i++;
}
}

return i;
}
char 1lase(char str)
{
char*str1=malloc(strlen+1)
*str1=str;
if(str1>='97'&&str1<='122')
str1-=32;
return str1;
}
main()
{
char str,str1;
scanf("&s",str);
printf("%s\n",str);
printf("s\n",str1);
return 1;
}
...全文
188 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Isnis-fallen 2012-01-04
  • 打赏
  • 举报
回复
case好象是关键字.

switch()

case 1:
Cedrus 2012-01-04
  • 打赏
  • 举报
回复
保留字是高亮的啊,你也拿来用
ROM__yu 2012-01-02
  • 打赏
  • 举报
回复
error C2059: syntax error : 'case'
请问大家这个问题是在哪呢?
ROM__yu 2012-01-02
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<memory.h>
int Getlenth(char* str1)
{
if(str1==NULL)
return 0;
else
{
int i=0;
if(str1!='\0')
i++;
return i;
}
}
char* case(char* str1)
{
char* char3=malloc(Getlenth(str1)+1)
* str3=str1;
if(str3>='a'&&str3<='z')
{
str3-=32;
str3++;
}
return str3;

}
int main()
{

char str1;
scanf("%s",str1);
printf("%s\n",case(str1));
printf("%s\n",str1);
getchar();
return 0;
}
赵4老师 2011-12-30
  • 打赏
  • 举报
回复
“心手”让我迷茫。
柯本 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 4,5 楼 ty080725 的回复:]
LS,功能是从用户获得一串字符串,将其中的小写转换成大写
你这段让我很迷茫。
我指2L。
[/Quote]
我其中的strupr就是将字串的小写转换成大写
输入字串自己写一个(这个一个表达式可完成的,不用我写了吧)
这个程序都迷茫的话,我只能无语了

Falcon2000 2011-12-30
  • 打赏
  • 举报
回复
有现成的函数,干嘛自己再造轮子呢
赵4老师 2011-12-30
  • 打赏
  • 举报
回复
关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:

A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程(理由:打字准确度偏低、粗心大意)
B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念)
C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证)
D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!)

如果想从A变成B的话,到我的资源http://zhao4zhong1.download.csdn.net/里面下载“适合程序员的键盘练习”
ROM__yu 2011-12-30
  • 打赏
  • 举报
回复
好吧,非常感谢各位大哥的帮忙,今天我再看了看指针和数组,这个程序能写出来了。
至于出现的许多低级错误,只能说,火候不够。
自信男孩 2011-12-29
  • 打赏
  • 举报
回复
if(str1>='97'&&str1<='122')改成:
if (str1 >= 'a' && str1 <= 'z')或者 if (str1 >= 97 && str1 <= 122)
基础需要努力巩固一下,不要急慢慢来。遇到问题不要急,遇到的问题愈多,思考的愈多,进步的越快。
opponent2012 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ty080725 的回复:]

我指2L。
[/Quote]
相应的大写和小写字母ASCII码,十进制差32,八进制差0040,十六进制差0x20.即空格ASCII码值
opponent2012 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ty080725 的回复:]

我指2L。
[/Quote]
3楼不是给了strupr转换大写函数的源码了么?0x20是空格的ASCII码
ROM__yu 2011-12-29
  • 打赏
  • 举报
回复
我指2L。
ROM__yu 2011-12-29
  • 打赏
  • 举报
回复
LS,功能是从用户获得一串字符串,将其中的小写转换成大写。
你这段让我很迷茫。
黯然 2011-12-29
  • 打赏
  • 举报
回复
仅供参考

char *strupr(char *strSrc)
{
assert(strSrc != NULL);
char *cp=strSrc;
while (*cp)
{
if (*cp>='a' && *cp<='z')
(*cp)-=0x20;
cp++;
}
return strSrc;
}
柯本 2011-12-29
  • 打赏
  • 举报
回复
C有标准的函数的,参考下:

#include <stdio.h>
#include <string.h>

int main(void)
{
char string[] = "abcdefghijklmnopqrstuvwxyz", *ptr;

/* converts string to upper case characters */
ptr = strupr(string);
printf("%s\n", ptr);
return 0;
}

ROM__yu 2011-12-29
  • 打赏
  • 举报
回复
功能:从用户获得一串字符串,将其中的小写转换成大写。
思路:先判断是否为空,然后计算长度,再转换大小写。最后输出。
但这段代码问题颇多,连自己都明显感觉。但没发改

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧