新微赢技术网

标题: 关于 转换大小写 [打印本页]

作者: 最爱水晶    时间: 2009-11-6 00:18
标题: 关于 转换大小写
小弟初学编程,请教一个问题,要求把一个string 对象 转换成大写,我的代码如下:
#include <iostream>
#include <cctype>
#include <cstring>
using namespace std;


int main()
{
    string s="Hello kitty!";
    char *ch=s;
    char *arr[50];
    for(int i=0; i<strlen(s); i++)
    {
        if(!isupper(*(ch+i)))
            *(arr+i)=toupper(*(ch+i));

    }
    cout << arr << endl;

    return 0;
}

有编译不能通过,请各位指点,如能提供可编译代码更是感谢。
作者: 为你执著    时间: 2009-11-6 00:18
程序代码:
#include <iostream>
#include <cctype>
#include <string>
using namespace std;


int main()
{
    string s="Hello kitty!";
    char arr[50];
    for(int i=0; i<s.size(); i++)
    {
        if(!isupper(s[i]))
            arr[i]=toupper(s[i]);
    }
    cout <<arr << endl;
    getchar();
    return 0;
}
作者: ︶ㄣ⒏懂緈諨    时间: 2009-11-6 00:18
学习了,非常感谢楼上的兄弟!
作者: ╰☆惢棂擱淺    时间: 2009-11-6 00:18
我也学习了啊
谢谢
作者: 莣囨孓love    时间: 2009-11-6 00:18
如何用指针去实现大小写的转换呢?
我改了一点,但没找到错误在哪?请答复,谢谢。
#include<iostream>
#include<cctype>
#include<cstring>
using namespace std;

int main()
{
    string s="Hello kitty";
    char *p;           //错误提示在这行,请注意。
    p=s;
    char *arr;
    for(int i=0;i<=sizeof(s);i++)
    {
        if(*(p+i))
        *(arr+i)=toupper(*(p+i));
    }
    cout<<arr<<endl;
    return 0 ;
}
作者: 莣囨孓love    时间: 2009-11-6 00:18
p是字符型指针,s是字符串,p怎么可以指向s呢
作者: 红星    时间: 2009-11-6 00:18
来学习下啊




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2