采用字符指针,将一个tmw字符串怎么写中出现的特定字符删除,程序怎么写

绍兴文理学院电工电子实验与实训
<font color="#75-
 用户名:
 密 码:
科学与人文
信息搜索:
C范例――利用指针将一个字符串逆序存储
浏览次数 1989
C范例&&利用指针将一个字符串逆序存储
C语言用指针将一个字符串逆序存储,本题的思路是使用两个指针分别指向字符串的首尾,然后交换两个指针所指位置的值,交换后将两个指针同时向中间移动一个位置,然后再交换,直至两个指针相碰或越过则停止循环。
源程序如下:
#include &stdlib.h&
void main(void)
&&&& char a[50];
&&&& scanf(&%s&,a); /* 从键盘接收一个字符串 */
&&&& str(a);
&&&& printf(&%s&,a);
&&&& getch(); /* 暂停屏幕,查看结果 */
void str(char *p1) /* 传入字符串的首地址 */
&&&& char *p2;
&&&& p2=p1;
&&&& while(*p1) /* 使指针p1指向字符串的结束标志 */
&&&&&&&&& p1++;
&&&& p1--; /* 使指针指向p1指向字符串的最后一个字符 */
&&&& /* 此时指针p2和p1分别指向字符串的首尾处 */
&&&& while(p2&p1)
&&&&&&&&& t=*p1; /* 交换首尾字符 */
&&&&&&&&& *p1=*p2;
&&&&&&&&& *p2=t;
&&&&&&&&& p1--; /* 指针p1和p2向中间移动 */
&&&&&&&&& p2++;
Copyright 2007 All Rights Reserved 版权所有  绍兴文理学院电工电子实验与实训课程建设组
地址:绍兴市环城西路508号   邮编:312000  电话:9  网址:http://www.ws./jpkc/dgdz1/共有 884 人关注过本帖
标题:请教下关于怎么删除指针型字符中特定的元素
等 级:新手上路
帖 子:61
&&问题点数:0&&回复次数:7&&&
请教下关于怎么删除指针型字符中特定的元素
定义一个指针型字符char *Hello[]={&Hello&,&The&,&World!&};字符数组 问下要想删除其中特定的字符串比如“The”要怎么编程删除??
新手搞不明白怎么删!
搜索更多相关主题的帖子:
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
字面字符串如&abcd&等,在程序的静态只读区里,Hello这个数组的每个元素也只是保存这些字符串的首地址而已,而且数组一旦被建立,它的空间就确定了,只有程序执行流程离开它的作用域的时候才能被弹出栈,也就是被销毁(回收或删除),所以想要删除第二个元素&The&这个字符串,只能给它标记一下,比如把它赋值为0,凡是为0的就表示已经被删除了。
My life is brilliant
等 级:蒙面侠
帖 子:1864
专家分:4121
直接将Hello[1]=NULL?
认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
等 级:新手上路
帖 子:61
回复 2楼 lz
没太明白&&直接将要删除的元素给NULL的话,好像没效果
[ 本帖最后由 kknd84913 于
11:34 编辑 ]
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
当然啊,你需要判断啊。
My life is brilliant
等 级:新手上路
帖 子:61
回复 5楼 lz
实在搞不明白 ,能给出一段完整的程序看看吗?
等 级:论坛游民
帖 子:44
专家分:43
程序代码:#include &stdio.h&
void main()
&&& char *p[]={&zzz&,&qq&,&aaa&};
&&& for(i=<font color=#;i&<font color=#;++i)
&&&&&&&&printf(&%s\n&,p[i]);
&&& p[<font color=#]=NULL;
&&& for(i=<font color=#;i&<font color=#;++i)
&&&&&&&&printf(&%s\n&,p[i]);
Press any key to continue
等 级:新手上路
帖 子:61
回复 7楼 x_x
原来是这样的&&居然没想到 悲剧啊。谢谢帮助!
版权所有,并保留所有权利。
Powered by , Processed in 0.027978 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved急求,求各位大神把帮帮忙,在主函数中输入一个字符串,然后删除该字符串里面所有的空格和标点符号,并输出 删除空格和标点符号后的字符串。(用指针)
[问题点数:20分,结帖人rui0613]
急求,求各位大神把帮帮忙,在主函数中输入一个字符串,然后删除该字符串里面所有的空格和标点符号,并输出 删除空格和标点符号后的字符串。(用指针)
[问题点数:20分,结帖人rui0613]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。> 从键盘输入一个字符串和一个指定字符,将字符串中出现的指定字符删除程序怎么理解解释一下下面函数的意思
从键盘输入一个字符串和一个指定字符,将字符串中出现的指定字符删除程序怎么理解解释一下下面函数的意思
hubei435200 & &
发布时间: & &
浏览:277 & &
回复:7 & &
悬赏:0.0希赛币
从键盘输入一个字符串和一个指定字符,将字符串中出现的指定字符删除程序怎么理解解释一下下面函数的意思,不太理解,具体点啊,谢谢题目是:从键盘输入一个字符串和一个指定字符,将字符串中出现的指定字符删除#include&stdio.h&void prochar(char *str,char c){char *p; &for(p=*p!='\0';p++) &if(*p!=c) &
*str++=*p; &
*str='\0';}void main(){char str[80],char_c; &gets(str); &scanf(&%c&,&char_c); &prochar(str,char_c); &puts(str);}
几个库函数可以googleprochar 可以单步运行,看看每一步都在干什么
hubijun & &
& & (0)(0)从字面意思理解输入abc,和字符b那最终结果就是ac
hubimaso & &
& & (0)(0)//prochar//input: str,待删除字符串。c 欲删除的字符void prochar(char *str,char c){ &char *p; &//另p指向str作为待删除字符串的移动指针 &//循环我补上了大括号,能清楚一些 &for(p=*p!='\0';p++) &{
//如果p指向的字符与c不符,即不删除
//str指向的字符等于p指向的字符,然后指针+1指向下一个字符
*str++=*p;
//反之,p向下移动一位 &} //str末位标识/0表示字符串结尾 *str='\0';}示例操作str = abcdef\0c = c函数执行p依次指向abcdef\0循环结束后str = abdeff\0函数结束后str = abdef\0\0
hubeixf & &
& & (0)(0)探讨//prochar//input: str,待删除字符串。c 欲删除的字符void prochar(char *str,char c){ char *p; //另p指向str作为待删除字符串的移动指针 //循环我补上了大括号,能清楚一些 for(p=*p!='\0';p++) {
//如果p指向的字符与c不符,即不删除
if(*p!=c)……
xkyangping & &
& & (0)(0)探讨//prochar//input: str,待删除字符串。c 欲删除的字符void prochar(char *str,char c){ char *p; //另p指向str作为待删除字符串的移动指针 //循环我补上了大括号,能清楚一些 for(p=*p!='\0';p++) {
//如果p指向的字符与c不符,即不删除
if(*p!=c)……
& & (0)(1)小心输入aaaa输出空串的情况
& & (0)(0)最新的标准规定void main()是不被允许的xl_at09 & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&增值电信业务经营许可证湘B2-编写主函数和子函数。主函数进行字符串的输入输出和函数调用,子函数的功能是删除字符指针s指向的字符串中的所有字符c,
编写主函数和子函数。主函数进行字符串的输入输出和函数调用,子函数的功能是删除字符指针s指向的字符串中的所有字符c, 10
3.编写主函数和子函数。主函数进行字符串的输入输出和函数调用,子函数的功能是删除字符指针s指向的字符串中的所有字符c,其格式如下:void delchr(char *s, char c)。
//纯C语言的,看不懂可追问
#include &stdio.h&void delchr(char *s, char c){&int i, j(0);&for (i=0; s[i]!='\0'; i++){&&if (s[i] == c){&&&//左移&&&for (j=i; s[j]!='\0'; j++)&&&&s[j] = s[j+1];&&}&}}
int _tmain(int argc, _TCHAR* argv[]){&char s[10],&while (1)&{ &&printf("\n\n输入字符串:");&&scanf("%s", s);&&getchar();&&printf("输入要删除的字符:");&&scanf("%c", &c);&&delchr(s, c);&&printf("删除字符%c后为:", c);&&puts(s);&}&return& 0;}
其他回答 (2)
#include &stdio.h&#include &string.h&void delchr(char *s , char c){& int l, i,& l = strlen(s);& for (i = 0; i & i ++)& & if (s[i] == c) {& & & for (j = j & l - 1; j ++)& & & & s[j] = s[j+1];
&l--; }& s[l] = '\0';}int main(){ char s[255], printf("要处理的字符串:"); gets(s); printf("要删除的字符:"); scanf("%c", &c); delchr(s, c); printf("\n结果:%s", s);}
以下是我给你写出的程序代码,希望对你有所帮助。
include "stdio.h"void main(){char a[100],c;printf("请输入字符串:\n");scanf("%s",a);printf("请输入字符c:\n");scanf("%c",c);delchr(a,c);printf("执行后的字符串为:\n%s",a);}void delchr(char *s,char c){while(*s){if(*s==c){*s=NULL;s++;}}}
相关知识等待您来回答
编程领域专家
& &SOGOU - 京ICP证050897号

我要回帖

更多关于 tmw字符串怎么写 的文章

 

随机推荐