如何用C语言获取某一位的值

nbhx2010 2012-02-03 09:02:39
比如有变量值为 abc10ef

1. 我现在想得到第2位的值,该怎么得到?
2. 如果我要把第2位的值变为h,该怎么写?

哎,好多年没碰过C了,只知道大概,却写不出一个完整可以运行的程序了,悲剧
...全文
1880 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
IVERS0N 2012-02-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 newpuple 的回复:]

引用 1 楼 ivers0n 的回复:
char buf[]="abc10ef";
buf[1]=h;

---------------
不要误导新手,buf[]里的内容是常量,是禁止被修改的

LZ应该把问题交代清楚,变量的值是16进制还是10进制的,进制不同代码也不同,如果是10进制的相当简单利用库函数itoa转换成字符串,然后直接取位即可
int val = 12345;
……
[/Quote]

char *p="123"; 123才是常量字符串

newpuple 2012-02-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ivers0n 的回复:]
char buf[]="abc10ef";
buf[1]=h;
[/Quote]
---------------
不要误导新手,buf[]里的内容是常量,是禁止被修改的

LZ应该把问题交代清楚,变量的值是16进制还是10进制的,进制不同代码也不同,如果是10进制的相当简单利用库函数itoa转换成字符串,然后直接取位即可
int val = 12345;
char a[50];
itoa(val, a, 10);
printf("%d", a[1]);
恨天低 2012-02-03
  • 打赏
  • 举报
回复

#include<stdio.h>

int main()
{
char str[] = "abc10ef";
char c = *(str+1);
printf("%c\n", c);
*(str+1) = 'B';
printf("%s\n", str);
return 0;
}
AnYidan 2012-02-03
  • 打赏
  • 举报
回复
c 语言中的位一般指 bit, 只有0和1,想得到某位的值,先( & mask) >> ? --- 先位与一个掩码,再右移,将其移至 最低位
心死 2012-02-03
  • 打赏
  • 举报
回复
悲剧。
IVERS0N 2012-02-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ivers0n 的回复:]

char buf[]="abc10ef";
buf[1]=h;
[/Quote]

buf[1]='h';
IVERS0N 2012-02-03
  • 打赏
  • 举报
回复
char buf[]="abc10ef";
buf[1]=h;

70,036

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧