社区
C语言
帖子详情
请问在c语言中我想取一个字符串中第二个字符,怎么写
wolfza
2002-09-13 03:24:20
请指教
...全文
870
14
打赏
收藏
请问在c语言中我想取一个字符串中第二个字符,怎么写
请指教
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhk1124
2002-09-14
打赏
举报
回复
//这实践上很简单的不过还是给你设计一个函数让你好用一点
//入口参数 &aa数组地址, b 是想取第几个数
int fun (int &aa,int b )
{
int *p;
p=aa;
b--; //因数组是从0---N, 实际表示是1---(N-1)
return *(p+b);
}
//使用时注意 b 的数据不要出阶
alexxing
2002-09-13
打赏
举报
回复
上面的 mid() 函数如果返回 NULL,表示失败(没办法,有 malloc 就要考虑失败),如果返回的不是 NULL,用完后必须 free
alexxing
2002-09-13
打赏
举报
回复
上面的程序还是有问题,下面这个程序好像是终于“功德圆满”了
const char * mid(const char *str, size_t start, size_t len)
{
size_t totallen = strlen(str);
if ( start >= totallen )
{
start = totallen;
len = 0;
}
else if ( start + len >= totallen )
{
len = totallen - start;
}
char * p = (char *) malloc(len+1);
if ( p )
{
if (len)
memcpy(p, str + start, sizeof(char)*len);
p[len] = 0;
}
return p;
}
alexxing
2002-09-13
打赏
举报
回复
老猫的函数还需要做一点完善,没有考虑 start > len 的情况
// 注意:用完 mid 后,需要 free 返回的字符串
const char * mid(const char *str, size_t start, size_t len)
{
size_t totallen = strlen(str);
if ( start >= totallen )
{
char * p = malloc(1);
p[0] = 0;
}
else
{
if ( start + len >= totallen )
len = totallen - start;
char * p = (char *) malloc(len+1);
memcpy(p, str + start, len);
p[len] = 0;
}
return p;
}
zhaoyang
2002-09-13
打赏
举报
回复
在c中没有mid,你的自己写函数。c++中可以用cstring类。
blh
2002-09-13
打赏
举报
回复
因为我是仿照mid函数的格式,呵呵
Plotto
2002-09-13
打赏
举报
回复
To blh:
Why not use p as an input argument?
blh
2002-09-13
打赏
举报
回复
给你一个例子
char *mid(const char *str, int start, int size)
{
int len;
char *p = NULL;
len = strlne(str);
len = (len > size) ? size : len;
p = malloc(len + 1);
p[len] = 0;
strncpy(p, str + start, len);
return p;
}
记得是用mid返回值后,free内存
black_snail
2002-09-13
打赏
举报
回复
char *p;
char a[4][30]; ?
a[4][30] is a string array like {"abc","dfdfd","dfdf","dfd"}
If you want to declare a string
char a[30];
a[1] is the second char . (a[0] is the first )
greysky123
2002-09-13
打赏
举报
回复
C中没有现成的函数,mid是VC里对CString的操作函数,在C中你只能自己写,给你一个比较简单的写法,如:
char *p;
char a[4][30];
if (strcmp(a[2],"1")==0)
{
p=(a[2])+1;//p指向a[2]中从a[2][1]开始的字符串
if (strcmp(p,"2")==0)
{
}
}
不过,我有个疑问,既然a[2]是字符串"1",那么a[2][1]应该是空的了,也就是p指向的空间为空,那这一步就没有任何意义了;是否将strcmp改为strncmp(a[2],"1",1)更为妥当,也许是我没有理解你的意思
darkelf
2002-09-13
打赏
举报
回复
我错了,我悔过
:(
darkelf
2002-09-13
打赏
举报
回复
老大,你的a[2]只是一个字符啊,你用字符和一个字符串比较,当然不可以啦
应该是
if(strcmp(a[2],'1')==0)才对啊
wolfza
2002-09-13
打赏
举报
回复
有没有什么函数譬如mid 可以使用的,我试过,发现类型不匹配
char *p
char a[4][30]
if strcmp(a[2],"1")==0) //a[2]是 我要截取的字符串
{
p=mid(a[2],2,1)
if (strcmp(p,"2")==0)
{
}
}
Plotto
2002-09-13
打赏
举报
回复
p[1] or *(p+1)
【
C语言
编程】从第
一个
字符
串
中
删除
第二个
字符
串
中
所有的
字符
题目: 输入两个
字符
串
,从第
一个
字符
串
中
删除
第二个
字符
串
中
所有的
字符
,例如:输入“They are students.“和"aeiou”,则删除之后的第
一个
字符
串
变成“Thy r stdnts"。 思路: 将
第二个
字符
串
的元素一一拿出用来和第
一个
字符
串
的元素进行比较,如果发现相同的元素,则将后面的元素提前,这样就能将相同的元素删除 源码: 运行结果如下: ...
c语言
删除
字符
串
中
特定
字符
串
,去除
字符
串
中
某个
字符
C语言
删除
字符
串
中
指定
字符
...
JAVA 删除
字符
串
中
指定的
字符
要CSS布局HTML小编今天和大家分享用到函数的调用。 编制函数fun,其功能是:删除
一个
字符
串
中
指定的一、问题描述:从键盘输入
一个
字符
串
给str和
一个
字符
给c,删除str
中
的所有
字符
c并输出删除后的
字符
串
str。输入:第一行是
一个
字符
串
; 第二行是
一个
字符
。输出:删除指定
字符
后的
字符
串
。 二、设计思路:
c语言
中
怎样
写
删除
字符
串
中
某个
字符
的程序啊?rt,各位大神帮帮...
c语言
中
取
字符
串
的首元素,
C语言
字符
串
@[toc]在很多教程
中
,
字符
串
不过是
一个
以0结束的
字符
数组,但是,在我看来,
字符
串
虽然不是
C语言
基本数据类型,但它比任何数据类型都重要,因为
字符
串
是最常用的数据。一、
字符
串
的概念我们可以把
字符
串
储存在char类型的数组
中
,如果char类型的数组末尾包含
一个
表示
字符
串
末尾的空
字符
\0,则该数组
中
的内容就构成了
一个
字符
串
。因为
字符
串
需要用\0结尾,所以在定义
字符
串
的时候,
字符
数组的长度要预留多
一个
字...
C语言
:从键盘输入两个
字符
串
,输出第
一个
字符
串
在
第二个
字符
串
中
的位置
从键盘输入两个
字符
串
,输出第
一个
字符
串
的首字母在
第二个
字符
串
中
的位置。如“abc”在“bbbacccabcddaw3”的位置为7。悬赏分:50 | 解决时间:2011-12-14 11:50:11//========================================最佳答案:试试如下程序:#include #includevoid main(){ char M[100], C[
C语言
(
字符
串
输入)
字符
串
输入
C语言
70,019
社区成员
243,267
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章