如何用特定的整数值替换字符串中的字母?
How to replace letters in a string with specific integer values?
我编写了一个 C 程序,其中包含一个看起来像这样的字符数组 'long_string'。
long_string[16] = "AHDAHDAHDAHDAHDA";
我想按如下方式替换字符串中的字母:
A-0, H-1, D-2.
有人能告诉我怎样才能做到这一点吗?我尝试在线查看,但大多数情况下都显示字母转换为 ASCII 值,这不是我需要的。提前感谢您抽出时间:)
int i = 0;
for( ; i < size ; i++ ){
switch( long_string[i] ){
case 'A':
long_string[i] = '0';
break;
// and so on...
}
}
如果要翻译大写字母字符,可以使用查找 table 并使用 char 值 less 'A' 对其进行索引,例如:
//ABCDEFGHIJKLMNOPQRSTUVWXYZ
const char xlat[]=("0 2 1 ");
..
..
newChar=xlat[oldChar-'A'];
或者,对于您似乎想要的,更通用的形式:
const char xlat[]=("\x00\x20\x20\x02\x20\x20\x20\x01\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20");
请注意,将字符转换为包含“\0”的集合将使输出数组无法用作 C 样式字符串。
按照您定义字符串的方式,它不会以空值终止(16 也不足以容纳空值终止符)。除此之外,你想要的应该相当简单:
int i = 0;
char long_string[] = "AHDAHDAHDAHDAHDA";
int len = strlen(long_string);
for(i = 0; i<len; i++)
{
if(long_string[i] == 'A')
long_string[i] = '0';
else if(long_string[i] == 'H')
long_string[i] = '1';
// etc.
}
我编写了一个 C 程序,其中包含一个看起来像这样的字符数组 'long_string'。
long_string[16] = "AHDAHDAHDAHDAHDA";
我想按如下方式替换字符串中的字母: A-0, H-1, D-2.
有人能告诉我怎样才能做到这一点吗?我尝试在线查看,但大多数情况下都显示字母转换为 ASCII 值,这不是我需要的。提前感谢您抽出时间:)
int i = 0;
for( ; i < size ; i++ ){
switch( long_string[i] ){
case 'A':
long_string[i] = '0';
break;
// and so on...
}
}
如果要翻译大写字母字符,可以使用查找 table 并使用 char 值 less 'A' 对其进行索引,例如:
//ABCDEFGHIJKLMNOPQRSTUVWXYZ
const char xlat[]=("0 2 1 ");
..
..
newChar=xlat[oldChar-'A'];
或者,对于您似乎想要的,更通用的形式:
const char xlat[]=("\x00\x20\x20\x02\x20\x20\x20\x01\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20");
请注意,将字符转换为包含“\0”的集合将使输出数组无法用作 C 样式字符串。
按照您定义字符串的方式,它不会以空值终止(16 也不足以容纳空值终止符)。除此之外,你想要的应该相当简单:
int i = 0;
char long_string[] = "AHDAHDAHDAHDAHDA";
int len = strlen(long_string);
for(i = 0; i<len; i++)
{
if(long_string[i] == 'A')
long_string[i] = '0';
else if(long_string[i] == 'H')
long_string[i] = '1';
// etc.
}