2019年四肖期期准_2019年马会正版_2019六肖生肖期期准

内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

首页 > 小知识 > 正文

c语言,输入一个字符串,查找第一个只出现一次的

2019-07-08 出处:网络 整理:zhishizhan.net

    话题:c语言,输入一个字符串,查找第一个只出现一次的字符,求高手帮忙

    回答:#include "stdio.h"#include "string.h"#include "stdlib.h"char FirstNotRepeatingChar(char* pString){//输入不合法if(!pString)return 0;//创建一个哈希表,并初始化const int tableSize = 256;int hashTable[tableSize];for(int i = 0; i hashTable[i] = 0;//确定字符串中每个字符出现的次数char* pHashKey = pString;while(*(pHashKey) != '\0')hashTable[*(pHashKey++)]++;//找到字符串中只出现一次的那个字符pHashKey = pString;while(*pHashKey != '\0'){if(hashTable[*pHashKey] == 1)return *pHashKey;pHashKey++;}//如果个字符串为空,或者字符串中的每个字符都至少出现两次return 0;}int main(void){char str[1000];printf("请输入字符串:");gets(str);if(FirstNotRepeatingChar(str)==0)printf("输入字符串中没有找到第一个只出现一次的字符!\n");elseprintf("输入字符串中第一个只出现一次的字符为:%c\n",FirstNotRepeatingChar(str));system("pause");return 0;}

    参考回答:先定义一个数组,把输入字符串给数组。然后再去对比像这样:假如数组是 arr[ 20 ]//假如是20char chr='';for(int i=0;i{if(arr[i]==arr[i+1]){continue;//这里说明有相同的。}else{chr=arr[i]; //这就是第一个只出现一次的字符了。}}方法差不多这是这样的。自己去整理吧。c语言,输入一个字符串,查找第一个只出现一次的

    话题:从键盘输入一个字符串

    回答:#includevoid main(){ char str[256];int i,k,n;gets(str); //键盘回车结束//scanf("%s",str) 键盘空格结束i=0; k=0; n=1;while ( str[i] ){ if ( str[k]str[i] ) { k=i; n=1; }else if ( str[k]==str[i] )n++;i++;}printf("字符值最小字符为%c,第1次出现位置%d,出现次数%d\n",str[k],k,n);}

    参考回答:你new了一个指针对象,没有用delete释放,会发生内存泄露你分配的空间大小只有1个字符,这样就没有空间放结束符了。你可以参考下面的写法。#include using namespace std;int main(){char str[10] = {0};cinstr;coutreturn 0;}

    话题:用指针编写一个程序,先从键盘上输入一个字符串,然后在该字符串

    回答:#include"stdio.h"void main(){int research(char string[]);char str[80];int k;printf("请输入一个字符串:\n");scanf("%s",str);k=research(str);if(k!=-1)printf("第一个x的下表为%d\n",k);else printf("该字符串中没有x!\n");}int research(char string[]){int i;char *p=string;for(i=0;*(p+i)!='\0';i++)if(*(p+i)=='x'){return i;break;}return -1;}运行过了,是正确的!

    参考回答:#includemain(){char a[100];char *p;p=a[0];printf("输入一个字符串:");gets(a);for(;*p!='\0';p++){if(*p=='x'){printf("x位于第%d个。\n",p-a[0]+1);break;}}if(*p=='\0')printf("-1\n");} (VC++6.0运行)c语言,输入一个字符串,查找第一个只出现一次的

    话题:一个选择题 大家帮帮忙吧 谢谢

    回答:楼主给俺看完啊,不然俺白辛苦了。搞错了没?这基础都这么好…… 选择C。c语言里数组是不可以用“=”整体付值的。字符串是一串连续的内存,在很多和数组都很像,但字符串有他的特别的地方,那就是可以使用字符串函数。b选项可以用gets和puts解释。d选项:字符在内存里里是ascll码存储的,因此可以比的。至于细节还有点说头,详情请看我自己总结的点字符串的东西,还不是很全,但一般情况够用了。但有一点,字符串函数是认得\0,这个串结束标志的。字符串处理函数:字符串函数可分为:字符串输出(puts),输入(gets),合并(stract),拷贝(strcpy),比较(strcmp),转换,,搜索(strchr) 注意:这一章例题中的字符串可用指针替。1 字符串输出函数puts:格式:puts(字符数组名);功能:把字符数组中的字符串输出显示器。例:#include main() { char a[]="made in china\r\nis well"; puts(a); } 注意:puts()函数可以使用转义字符; puts完全可以由printf函数取,当要求按格式输出时通常用printf ;puts()函数用来向标准输出设备(屏幕)写字符串并换行, 其调用格式为: puts(s); 其中s为字符串变量(字符串数组名或字符串指针)。 puts()函数的作用与语printf("%s\n", s)相同。 例4: main() { char s[20], *f; /*定义字符串数组和指针变量*/ strcpy(s, "Hello! Turbo C2.0"); /*字符串数组变量赋值*/ f="Thank you"; /*字符串指针变量赋值*/ puts(s); puts(f); } 2 字符串输入函gets:格式:gets(字符数组名);功能:从标准输入设备键盘输入一个字符串;该函数得到一个函数值为该字符数组的首;例:#include main() { char a[15]; printf("in put a string:\r\n"); gets(a); puts(a); } 注意:gets函数不以输入中的“空格”为结束标志,这与scanf函数不同;gets()函数 gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符 不属于这个字符串。其调用格式为: gets(s); 其中s为字符串变量(字符串数组名或字符串指针)。 gets(s)函数与scanf("%s", s)相似, 但不完全相同, 使用scanf("%s", s) 函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束, 空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符 串直到回车为止。 例5 main() { char s[20], *f; printf("What's your name?\n"); gets(s); /*等待输入字符串直到回车结束*/ puts(s); /*将输入的字符串输出*/ puts("How old are you?"); gets(f); puts(f); } 3 字符串连接函数strcat:格式:strcat(字符数组名1, 字符数组名2);功能:把字符数组2里字符串连接到字符数组1里字符串的后边并删除字符串1的串结束标志'\0';返回值为数组1的首,因此数组1要有足够的长度;例:#include #include main() { static char a[]="my name is "; char b[15]; printf("in put your name\r\n"); gets(b); strcat(a, b); puts(a); }4 字符串拷贝函数strcpy:格式:strcpy(字符数组名1, 字符数组名2);功能:把字符数组2中的字符串拷贝到字符数组1中;字符数名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。例:#include #include main() { char a[20]; char b[]="made in china"; strcpy(a, b); puts(a); } 注意:要求字符数组1要有足够的长度。5 字符串比较函数:注意:1、逐字对比判断字符的ASCII码值大小。 2、比较到某个字符判断出大小时立即结束。输出非零。 3、字符串相同时输出零 strcmp:格式:strcmp(字符数组名1, 字符数组名2);功能:按照ASCII码的顺序比较两个数组中的字符串,并由函数返回值返回比较结果。字符串1=字符串2,返回值=0;字符串1字符串2,返回值0;字符串1本函数可以比较两个字符串常量,或比较数组和字符串常量。例:#include #include main() { int k; char a[20]; char b[]="i love china"; printf("in put s string\r\n"); gets(a); k=strcmp(a, b); if(k==0) printf("a=b\r\n"); if(k0) printf("ab\r\n"); if(k printf("a } 注意:不是比较字符串长度,而是比较ASCII码的大小,可用于姓名字母排序。strncmp:格式:strncmp(字符数组名1,字符数组名2,int length);功能:比较字符串1和字符串2的前length个字符;字符串1=字符串2,返回值=0;字符串1字符串2,返回值0;字符串1例:#include #include main() { int k; char *a="I love china"; char *b="I am happy"; k=strncmp(a, b, 6); if(k0) printf("the string b is greater than string a\r\n"); if(kprintf("the string b is less than string a\r\n"); if(k==0) printf"(" the string b is equal string a\r\n ") } strncmpi:格式:strncmp(字符数组名1,字符数组名2,int length);功能:比较字符串1和字符串2的前length个字符,不分大小写;例:6 测字符串长度函数strlen:格式:strlen(字符数组名);功能:测字符串的实际长度(不含串结束标志'\0',但转义字符算一个字符),并作为函数的返回值;例:#include #include main() { int k; char a[]="i love china"; k=strlen(a); printf("the length of string is:%d\r\n", k); } 注意;字符

    参考回答:对C语言字符数组的描述中错误的是(C)A 字符数组可以存放字符串B 字符数组的字符串可以整体输入输出C 可以再赋值语句中通过赋值运算符“=”对字符数组整体赋值D 不可以用运算符对字符数组中字符串进行比较c语言,输入一个字符串,查找第一个只出现一次的

    话题:输入一个字符串,调用查找函数找出指定字符第一次出现在字符数组

    回答:#include #include #include using namespace std;int finds(string *a,string b,int i){for(i=0;i{if(a[i]==b)return i;}}void deletes(string *a,string b,int i){int t;string *p;t=finds(a,b,i);for(int k=t;ka[k]=a[k+1];}int main(){string a[]={"abc","bbc","cbc"};string *p=a;string b;static int k=3;cinb;deletes(p,b,k);for(int i=0;icoutreturn 0;}做的不好,将就能用

    参考回答:你好,不知道你所说的是那个压力调节了汽车有问题,问汽车大师。4s店专业,10分钟解决。

    话题:c语言从键盘上输入一个字符串,按后按照下面要求输出一个新字符串

    回答:运行正常!#includelt;stdio.hgt;void main(){char a[10],b[10],i=0,j=0;printf("输出字符串");scanf("%s",a);// abcdeffor(i=0;a[i]!='\0';i++){b[j++]=a[i];b[j++]=' ';}b[j]='\0';printf("%s",b);}一起努力!一起加油!祝你成功~

    参考回答:#include lt;stdio.hgt; #includelt;string.hgt; void main(){char str[100];int i=0,k;printf("please input a string:");gets(str);k=strlen(str);for(i=0;ilt;k;i++)printf("%c ",str[i]);}c语言,输入一个字符串,查找第一个只出现一次的

    话题:c语言中设计一个寻找输入字符串中字符值最大的字符,并输出最大的

    回答:#include#includeint main(){int i,d,t,w,m;char s[1000];while(gets(s)!=NULL){t=w=0;d=strlen(s);for(i=0;iif(tfor(i=0;iif(s[i]==s[m]) w++;printf("第一次出现位置为%d 出现次数为%d\n",m+1,w);}}望采纳

    参考回答:#includevoid main(){ char str[256];int i,k,n;gets(str);i=0; k=0; n=1;while ( str[i] ){ if ( str[k]else if ( str[k]==str[i] ) n++;i++;}printf("字符值最大字符为%c,第1次出现位置%d,出现次数%d\n",str[k],k,n);}

    话题:在c#里随机输入一个字符串,统计每个字符出现的次数

    回答:public DataTable getTextCount(string str){DataTable dt=new DataTable();dt.Columns.Add(new DataColumn("text",typeof(string)));dt.Columns.Add(new DataColumn("count",typeof(int)));bool key=true;for(int ii=0;iistring text=str.Substring(ii,1);for(int iii=0;iiiif(text.Equals(dt.Rows[iii]["text"].ToString())){dt.Rows[iii]["count"]=Convert.ToInt32(dt.Rows[iii]["count"].ToString())+1;key=false;break;}}if(key){DataRow dr=dt.NewRow();dr["text"]=text;dr["count"]=1;dt.Rows.Add(dr);}}return dt;}用我写的这个方法吧.你只需要传一个你要统计的字符串进去.就OK了.会返回给你一个dataTable.第一例是某字符.第二例是该字符出现的次数.

    参考回答:简单做了个比较粗糙的测试,qiangking的方法用时是我的二分之一,是魔御用时的十分之一,可能是用了HashTable的缘故。不过HashTable的结构更好些。————————————————个人感觉最简单的办法:using System;using System.Collections;namespace ConsoleApplication1{class Program{static void Main(string[] args) {string stringForCount = "aaaaaa";//你要统计的字符串。Hashtable resultHashTable = new Hashtable(); //统计结果的哈希表/*如果你的统计不分大小写。如下写*/stringForCount = stringForCount.ToUpper();for (int i = 65; i {char ichar = (char)i;//利用Ascii码转化为字母if (stringForCount.LastIndexOf(ichar) 0){char[] charArr = {ichar};int count = stringForCount.Split(charArr).Length -1;//用Split方法统计出现次数resultHashTable.Add(ichar, count);}}/*如果你的统计分大小写。如下写*///for (int i = 65; i //{// char ichar = (char)i;// if (stringForCount.LastIndexOf(ichar) 0)// {// char[] charArr = { ichar };// int count = stringForCount.Split(charArr).Length;// resultHashTable.Add(ichar, count);// }// char ichar = (char)(i + 32);// if (stringForCount.LastIndexOf(ichar) 0)// {// char[] charArr = { ichar };// int count = stringForCount.Split(charArr).Length;// resultHashTable.Add(ichar, count);// }//}foreach(DictionaryEy de in resultHashTable) //遍历哈希表,输出统计结果 {Console.WriteLine(string.Format("{0}:{1}",de.Key,de.Value));}}}}c语言,输入一个字符串,查找第一个只出现一次的

    话题:c语音 定义一个字符串数组 然后输入一个字符串 查找该字符串在数组

    回答:int my_find(char* source, char* target){int i,j;int s_len=strlen(source);int t_len=strlen(target);if(t_lens_len){return -1;}for(i=0;i{j=0;int flag=1;if(source[i]==target[j]){int k,p=i;for(k=0;k{if(source[p]==target[j]){p++;j++;continue;}else{flag=0;break;}}}else{continue;}if(flag==1){return i;}}return -1;}

分享给小伙伴们:

相关文章

搞笑图片

,