char szString[10];
想把szString强制转化为大写。如何办?难道要利用toupper()函数一个个字符一个字符的循环转换么?for (int n = 0; n<10 ; n++)
{
    szString[n] = toupper(szString[n]);
}

解决方案 »

  1.   

    char *_strupr(
       char *str 
    );
    wchar_t *_wcsupr(
       wchar_t *str 
    );
    unsigned char *_mbsupr(
       unsigned char *str 
    );
    char *_strupr_l(
       char *str,
       _locale_t locale
    );
    wchar_t *_wcsupr_l(
       wchar_t *str,
       _locale_t locale
    );
    unsigned char *_mbsupr_l(
       unsigned char *str,
       _locale_t locale
    );
    template <size_t size>
    char *_strupr(
       char (&str)[size]
    ); // C++ only
    template <size_t size>
    wchar_t *_wcsupr(
       wchar_t (&str)[size]
    ); // C++ only
    template <size_t size>
    unsigned char *_mbsupr(
       unsigned char (&str)[size]
    ); // C++ only
    template <size_t size>
    char *_strupr_l(
       char (&str)[size],
       _locale_t locale
    ); // C++ only
    template <size_t size>
    wchar_t *_wcsupr_l(
       wchar_t (&str)[size],
       _locale_t locale
    ); // C++ only
    template <size_t size>
    unsigned char *_mbsupr_l(
       unsigned char (&str)[size],
       _locale_t locale
    ); // C++ only
      

  2.   

      原型:extern char *strupr(char *s);   用法:#include <string.h>   功能:将字符串s转换为大写形式   说明:只转换s中出现的小写字母,不改变其它字符。返回指向s的指针。   举例:   // strupr.c   #include <stdio.h>   #include <string.h>   int main()   {   char s[]="Copywrite 1999-2000 GGV Technologies";   printf("%s",strupr(s));   getchar();   return 0;   }
      

  3.   

    那如果是
    string strToUpper;
    是不是就不能使用这个函数了?
    strToUpper = _strupr(strToUpper.c_str()); // 这样可以么?
    看MSDN好像执行的是REPLACEMENT方法。是不是就不能操作string类型的字符串呢?应该不安全吧。
      

  4.   

    refer to MSDN...Return Value
    Each of these functions returns a pointer to the converted string. Because the modification is done in place, the pointer returned is the same as the pointer passed as the input argument. No return value is reserved to indicate an error.
      

  5.   

    #include <algorithm>
    #include <string>
    using namespace std;string str = "hello,World!";
    transform(str.begin(), str.end(), str.begin(), toupper);
      

  6.   

    char * striupr(char *psz)
    {
    char *p=psz;
    while(*p)
    {
    if(*p < 0)
    {
    p += 2;
    continue;
    }

    if(*p >= 'a' && *p <= 'z') *p &= 0x5F;
    p++;
    }
    return psz;
    }