我有一个包含char数组'long_string'的C程序,看起来像这样。
long_string[16] = "AHDAHDAHDAHDAHDA";
我希望将字符串中的字母替换如下: A-0,H-1,D-2。
有人能告诉我怎么能实现这个目标?我尝试在线查看,但大多数案例显示字母转换为ASCII值,这不是我需要的。提前感谢你的时间:))
答案 0 :(得分:1)
int i = 0;
for( ; i < size ; i++ ){
switch( long_string[i] ){
case 'A':
long_string[i] = '0';
break;
// and so on...
}
}
答案 1 :(得分:1)
如果你想翻译大写字母字符,你可以使用查找表并使用char值少于&#39; A&#39;对其进行索引,例如:
//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");
请注意,将字符转换为包含&#39; \ 0&#39;将输出数组作为C风格的字符串呈现为不可用。
答案 2 :(得分:1)
您定义字符串的方式,它不会以空终止(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.
}