在C中将char数组转换为大写

时间:2019-03-20 14:23:14

标签: c uppercase

我正在尝试将char数组转换为C中的大写字母。但是它仍然以小写形式输出。转换功能中的逻辑对我来说还不错。我不知道问题是否可能是我传递给此函数的输入是结构变量的成员。

这是我要传递给转换函数的成员的结构:

typedef struct AESParams {
   unsigned char output[192];
} AESParams;

我的转换功能如下所示:

void stringUpr(char *s)
{
    int i=0;
    while(s[i]!='\0')
    {
        if(s[i]>='a' && s[i]<='z'){
            s[i]=s[i]-32;
        }
        ++i;
    }
}

我调用转换函数如下:

AESParams parameters;
stringUpr(parameters.output);

如果在调用“ stringUpr”函数后打印输出,该值仍为小写。谁能告诉我这是什么原因造成的?

TIA ...

更新:将值写入输出的代码。

EVP_EncryptUpdate(&ctx, parameters->output, &outLen, input, length); 
// This call happens in some other file. parameters is passed to the function that calls this function and after computation parameters is passed back to the place where I'm calling stringUpr().

我相信这行代码可以正常工作,并且在计算后可以给出正确的结果。只是我要将此值转换为大写并写入文件。

1 个答案:

答案 0 :(得分:2)

您的程序假定它正在使用ASCII字符集运行,但不能保证。使用 <Container> {this.state.watchlist.length === 0 && <h1>no movies</h1>} {this.state.watchlist.map(item => (<WatchlistMovie className="watchlist-movie" key={item.id} id={item.id} title={item.title} poster={item.poster} overview={item.overview} rating={item.rating} user={this.props.user} />))} </Container>

中定义的标准函数
ctype.h