如何在 OpenCL 中将小写转换为大写,反之亦然
How to convert lowercase to uppercase in OpenCL or vise-versa
嗨,我有一个包含一些特殊字符和小写字母的 char16 向量,可以检查每个字符,如果:
1.(是字母表吗?如果是,那么我会将其转换为小写字母,反之亦然
2.( 如果是特殊字符或空格(例如。' ' 或 ' " ' 又名 apos 或 ',' 或 '-' 等,那么我会保持原样
下面是我未完成的内核,在将我的字符移动"n"量之前,我想检查每个字符是否是字符并将其转换为大写/小写
__kernel void A2_T2_B(
__global int n,
__global char16* char_vec,
__global char* encrypted,
__global char* decrypted ) {
int i = get_global_id(0);
if (n>0)
{
if(any(char_vec[i]=='z')==1))
{
}
char_vec[i]+=n;
}
else if(n<0)
{
char_vec[i]-=n;
}
}
OpenCL 没有任何内置的字符串处理函数,如果这是你要问的。您需要自己实现它们,或找到第三方库。
我们没有一个通用的答案,因为实现将在很大程度上取决于编码。对于纯 ASCII,您可以使用以下内容:
bool isupper(char c)
{
return (c >= 'a' && c <= 'z');
}
只需添加这个简单的转换条件
for (int i = 0; arr[i] != 'n'; i++) {
if (arr[i] <= 'a' && arr[i] >= 'z') {
arr[i] = (int)arr[i] - 32; // A: 65, a: 97 ; a - A = 32
// or arr[i] = arr[i] - ' ';
}
}
相关文章:
- 如何在 c++ 中将所有大写字母转换为字符串中的小写字母,反之亦然?
- 将通用引用强制转换为可调用的 void 指针,反之亦然
- 如何在 OpenCL 中将小写转换为大写,反之亦然
- 如何将CNG密钥转换为OpenSSL EVP_PKEY(反之亦然)?
- 快速将无符号字符的向量强制转换为POD结构的向量,反之亦然
- 在C++中,将无符号整数转换为八进制表示,反之亦然的最佳方法是什么
- 将 char[] 数组转换为字节,然后将字节转换为 int,反之亦然
- 将字节数组 (uint8_t) 转换为单词数组 (uint16_t),反之亦然
- 在Qt中将QString转换为ASCII值,反之亦然
- 封送处理 - 转换 std::向量<char>到字符串^ 反之亦然
- 将eigen :: sparsematrix转换为cusparse,反之亦然
- STD :: String和Qvariant(反之亦然)QT5之间的转换
- 如何将 Q 格式的整数转换为浮点数(反之亦然)
- 将qimage*转换为void*,反之亦然
- C :使用函数过载与CHAR到INT之间的隐式转换,反之亦然
- 如何将QPixMap转换为QPainterPath,反之亦然
- 从字符串转换为 uint8,反之亦然
- 创建一个将Centigrade转换为Wahrenheit的课程,反之亦然
- 如何将STD :: String转换为QString保留值,反之亦然
- 编译器可以静默地从 const 转换为 const 和,反之亦然吗?