给定程序的功能是:判断字符ch是否与串str中的某个字符相同,若相同什么也不做,若不同则插在串的最后?

作者&投稿:黄战 (若有异议请与网页底部的电邮联系)
解释一下这个函数 判断字符ch是否与str所指串中的某个字符相同; 若相同,什么也不做,若不同,则将其插在~

函数功能:判断字符ch是否与str所指串中的某个字符相同; 若相同,什么也不做,若不同,则将其插在str所指的位置(也就是传递的字符串末尾处,因为你的str指针一直在移动)。
例如输入abcd (回车) e(回车)
则输出abcde
楼上说的很好,函数fun参数里面有定义,char * str,所以str是指向字符的指针,下面的2个表达式是永远等价的,, *(str+i)和str[i](其中int i;)
所以str[0]就是*str,,当然str[1]就是*(str+1);其值都是字符。
因此str[0]中存的就是ch了,但是你的str一直在++,所以当判断完时已经到字符串末尾了。
还有字符串大于80时访问会越界,请注意。

bool fun(char* src, int iLen, char ch)
{
char* pTmp = src;

//查找比对是否相同

while(pTmp && *pTmp != '\0' && *pTmp != ch)

pTmp++;


//确保src缓冲区足够长

int iStrLen = strlen(src);

if ( iStrLen+2 >= iLen)

{
return false;

}
else

{
src[iStrLen + 1] = ch;

src[iStrLen + 2] = '\0';

return true;

}
return false;

}

使用C++ STL的string会事半功倍

/*str即为*str != NULL,用于判断指针是否到了字符串尾,
*str !=ch用于判断字符串中是否有与用户输入的单个字符相同的字符,
str++;使指针移至字符串中的下一个字符*/
while (*str &&*str !=ch) str++;
/*这里有两种情况,如果出现用户输入字符与字符串中某字符相同,跳出whlie循环(即出现了*str==ch即whle循环的第二个判断条件退出),那么,因为此时*str和ch是相同的,所以进入不了if,直接回到主函数main(),在屏幕上输出原来的字符串。另外一种情况是,*str != NULL,即在字符串str中没有找到与用户输入的字符ch相同的字符,也就是whlie循 环的第一个条件退出,那么这个时候*str 与ch不同,所以进入if。注意,这个时候的指针是指向数组的最后一个字符(即字符串的结束符0)*/
if(*str!=ch)
{ str[0]=ch;//这个表达式的作用是,把用户输入的字符ch替换字符串最后一个字符0.
str[1]=0;//这个表达式的作用是,补上数组的结束字符0.

话说这个想了好一会儿啊……

if(*str!=ch)
{ str[0]=ch;
str[1]=0;
}
这段代码就是判断当循环结束后如果当前位置的字符(*str)和ch字符不相等,那么将ch插入字符串的尾部,并且在插入的字符后在插入一个字符串的结束符;
你要先理解那个循环while (*str &&*str !=ch) str++;
它从字符串的头开始逐个比较字符,如果其中某个字符和ch相等,那么当循环结束时,*str一定和ch是相等的,这样自然不用插入字符;如果逐个比较都不相等那么字符串最后一个字符一定是0x00,那么*str &&*str !=ch这个表达式第一个字表达式*str一定为0x00,条件为假,循环结束。这时再看那个if判断,这时的*str和ch一定不相等,所以str[0]原来是0x00(字符串结束符),就会被ch替换(str[0]=ch重新赋值了),然后再给它后面追加一个0x00作为字符串结束符。

楼上两位都是正确的。
当我看到这两句时(str[0]=ch; str[1]=0;),我也以为是在改变输入字符串的0、1位。后面发现是str指针当前位(即原来NULL位),,str[1]是它的下一位。


简述labview中前面板和程序框图的作用。
程序框图(Block Diagram)的作用:程序框图是LabVIEW程序的核心,它定义了程序的功能和逻辑。在这里,程序员通过连线来连接不同的函数节点(Functions)、子VI(Sub VIs,即子虚拟仪器)、循环结构、条件结构等,从而构建出程序的执行流程。这些元素在程序框图中以图形化的方式表示,使得程序逻辑更加直观和...

法院普通程序是什么意思!
普通程序 :是人民法院审理第一审民事诉讼案件时通常所适用的程序。从普通程序的基本结构来看,包括起诉和受理、审理前的准备、开庭审理、诉讼中止和终结、判决和裁定等5个环节。普通程序是诉讼程序中最基本、最核心的一种程序,是诉讼程序的基础,具有审判程序通则的功能。在《中华人民共和国民事诉讼法》...

程序法的地位及作用
在执法和司法实践中,把程序置于不顾的现象也时有发生。程序法的作用:程序法的主要功能在于及时、恰当地为实现权利和行使职权提供必要的规则、方式和秩序。为了描述程序的重要性和公正性,美国当代著名伦理学家罗尔斯在《正义论》一书中形象地把公正程序喻为“切蛋糕”的规则。蛋糕是权利和利益的象征,一...

再审程序的作用
(一)再审程序的功能再审程序的设立,对于确保司法公正,提高审判质量,维护司法权威与尊严,保护当事人的合法权益等方面,具有十分重要的意义。这些意义通过再审程序的下列功能而实现:1.纠错功能再审程序的首要功能是纠正已经发生法律效力的裁判中存在的错误。在(一)再审程序的功能 再审程序的设立,对于确保司法...

什么是行政程序的正当性
正当法律程序有两个基本功能:一、防止公权力滥用,遏制腐败;二、保障人权,保护公民、法人和其他组织的合法权益不受公权力主体滥权、恣意行为侵犯。我国的行政法中无不渗透和体现着“正当程序”原则。例如《行政处罚法》第六条规定:公民、法人或者其他组织对行政机关所给予的行政处罚,享有陈述权、申辩权...

实体法与程序法的区别
实体法与程序法的区别如下:1、功能不同:程序法,程序法的主要功能在于及时、恰当地为实现权利和行使职权提供必要的规则、方式和秩序;实体法,实体法的主要功能在于规定和确认权利和职权以及义务和责任。法律上的权利是法律关系主体。2、内容不同:程序法,程序法是规定以保证权利和职权得以实现或行使,...

法院普通程序审理是什么意思
普通程序是人民法院审理第一审民事诉讼案件时通常所适用的程序。普通程序是诉讼程序中最基本、最核心的一种程序,是诉讼程序的基础,具有审判程序通则的功能。普通程序分为:1、普通程序分为起诉和受理,民事诉讼程序的开始阶段。包括原告起诉和人民法院受理两方面的诉讼行为的结合;2、审理前的准备,审判...

开庭后审判长应当做哪些程序性工作的规定。
关于第一审程序的期限,《刑事诉讼法》规定:人民法院审理公诉案件,自受理后1个月内宣判,至迟不得超过1个半月。遇有《刑事诉讼法》第126条规定的情形之一,经省、自治区、直辖市高级人民法院批准或者决定,可以再延长1个月。如遇人民法院改变管辖的案件,应从改变后的人民法院收到案件之日起计算审理...

一审与二审的区别
做好第一次案件的审判即刻节约司法局,又可以减肥,当时的辅导,有助于实现诉讼经济要求。与 而第二者,人程序的是,有利于正确查明案件准确的惩罚犯罪分子保护被告人合法权益,由于刑事案件,复杂性理想主观因素定案审判案件选择呢,法院可能将中最轻判或轻罪重判无罪判无罪无罪判有罪,在想想上次全霍霍...

审理期限是什么意思
二、普通程序审理期限是多久普通程序是指人民法院审理和裁判第一审民事案件通常适用的程序。普通程序是诉讼程序中最基本、最核心的一种程序,是诉讼程序的基础,具有审判程序通则的功能。适用普通程序的,应当在立案之日起六个月内审结,需要延长的可以延长六个月,也就是说普通审理程序的审理期限一般为六个月,有特殊情况...

平和县13045318338: 给定程序的功能是:判断字符ch是否与串str中的某个字符相同,若相同什么也不做,若不同则插在串的最后? -
剧荔丽科: 展开全部/*str即为*str != NULL,用于判断指针是否到了字符串尾, *str !=ch用于判断字符串中是否有与用户输入的单个字符相同的字符, str++;使指针移至字符串中的下一个字符*/ while (*str &&*str !=ch) str++;/*这里有两种情况,如果出现用户...

平和县13045318338: 有以下程序,程序中库函数islower (ch)用以判断ch中的字母是否为小写字母 -
剧荔丽科: intislower(char ch)的功能是判断字符 c 是否为小写英文字母,当 ch 为小 写英文字母(a-z)时,返回非零值,否则返回零.后面语句 p[i-1]=p[i-1]-'a'+'A'的作用是 把小写字母转化为大写字母.根据判断条件可知,只有当空格字符的前一个字符为小写字符 时才把该小写字符变成大写.

平和县13045318338: 判断字符ch是否与str所指串中的某个字符相同; 若相同,什么也不做,若不同,则将其插在串的最后 -
剧荔丽科: 1.void fun(char str, char ch ) 改为void fun(char *str, char ch )2.if ( *str == ch ) 改为if ( *str != ch )3.str[1] = '0'; 改为str[1] = '\0';

平和县13045318338: 1.设计函数letter,其功能是判断给定的字符ch是否是英文字母. letter( cher ch) -
剧荔丽科: bool letter( char ch) { return (ch>='a'&&ch<='z')|袭|(ch>='A'&&ch<='Z') ; }或者知道 bool letter( char ch) { return isalpha(ch); }

平和县13045318338: 关于c语言题目
剧荔丽科: 这个程序的意图是这样的: 开始-----while (*str && *str!=ch) str++;(解释:判断指针str是否为空,同时如果指针str指向的内容!=ch时,指针往下走一个,直到str为空,或者str指向的内容等于ch跳出循环)-------if (*str == 0){解释:这个判断语句,是判断str是否到字符串尾,由前面的while语句,可能导致str指向'\0',那么这个if语句的意思是'当str指向字符串尾的时候'}---- str[0] = ch;str[1] = '\0';(解释:把ch中的内容加到str指向的当前位置,也就是字符串尾,同时给新形成的字符串末尾加上一个结束符)!解释完毕,不理解请追问

平和县13045318338: 大侠们帮帮忙啊?
剧荔丽科: 首先这个函数的意思是,检查ch是否在串str中存在,若存在,则不管,不存在,就把整个串赋值为ch(if ( *str =='\0'){ str [0] = ch;str[1] = '\0';}).while(*str && *str!=ch) 意思是str串到了结尾或者*str==ch就退出循环.

平和县13045318338: 下列给定的程序中,函数fun()的功能是:判断字符ch是否与str所指字符串...
剧荔丽科: 1. isalpha() 用来判断一个字符是否是英文字母,相当于 isupper(c)||islower(c),其原型为: int isalpha(int c);2.【参数】c 为需要被检测的字符.3.【返回值】若参数c 为英文字母(a ~ z A ~ Z),则返回非 0 值,否则返回 0.4.注意,isalpha() 为宏定义,非真正函数.

平和县13045318338: C++如何判断输入的数字还是字母 -
剧荔丽科: isalpha函数:isalpha 原型:int isalpha(int ch)用法:头文件加入#include (旧版本的编译器使用) 功能:判断字符ch是否为英文字母,当ch为英文字母a-z或A-Z时,在标准c中相当于使用“isupper(ch)||islower(ch)”做测试,返回非零值(不...

平和县13045318338: 写一个函数find(char s[],char ch),判断ch是否在字符串s 中. -
剧荔丽科: #include<stdio.h>#include<string.h> int find(char s[],char ch) { int i; for(i=0;i<strlen(s);i++) if(s[i]==ch) return 1; return 0; } void main() { char s[30],a; printf("请输入一串字符"); gets(s); printf("请输入你要查找的字符:"); a=getchar(); if(find...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网