精华内容
下载资源
问答
  • /*编程从键盘输入个字符串和一指定字符, 删除该字符串中所有指定的字符,将结果保存到一新的字符串中并输出*/ #include<stdio.h> #include<string.h> main() { char str[100],s[100],c; int i=...

    在这里插入图片描述

    /*编程从键盘输入一个字符串和一个指定字符,
    删除该字符串中所有指定的字符,将结果保存到一个新的字符串中并输出*/
    #include<stdio.h>
    #include<string.h>
     main()
    {	char str[100],s[100],c;
    	int i=0,j=0;
    	printf("请输入一个字符串:"); 
    	gets(str);
    	printf("请输入指定的字符:"); 
    	c=getchar();
    	while(str[i]!='\0')
    	{	if(str[i]!=c)/*判断是否为指定的字符*/
    		{	s[j]=str[i];
    			j++; 
    		}
    			i++;
    	}
    	s[j]='\0';
    	puts(s);	 
    }
    
    展开全文
  • /*编程实现从键盘输入一串字符串和一字符,统计该字符串中指定字符出现的个数*/ #include<stdio.h> #include<string.h> main() { char str[100],c; int i=0,count=0; printf("请输入个字符串:");...

    在这里插入图片描述

    /*编程实现从键盘输入一串字符串和一个字符,统计该字符串中指定字符出现的个数*/
    #include<stdio.h>
    #include<string.h>
    main()
    {	char str[100],c;
    	int i=0,count=0;
    	printf("请输入一个字符串:");
    	gets(str);
    	printf("请输入指定的查找字符:");
    	scanf("%c",&c);
    	while(str[i]) /*该循环扫描/遍历字符数组*/
    	{	if(str[i]==c)
    			count++;
    			i++; 
    	}
    	printf("%d\n",count);
    }
    
    展开全文
  • 输入个字符串s,再输入字符ch,将字符串中所有的ch字符删除后输出该字符串。要求定义和调用函数delchar(char *s,char ch),该函数将字符串s中出现的所有ch字符删除。 Input 两行 第一行:一个字符串s(长度...

    Description
    输入一个字符串s,再输入一个字符ch,将字符串中所有的ch字符删除后输出该字符串。要求定义和调用函数delchar(char *s,char ch),该函数将字符串s中出现的所有ch字符删除。
    Input
    两行
    第一行:一个字符串s(长度小于80)

    第二行:一个字符ch

    Output
    将字符串s中所有ch字符删除后的字符串

    Sample Input
    abc is abc
    a

    Sample Output
    bc is bc

    在这里插入代码片
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    char sc(char *x,char y);
    int main(void)
    {
     char a[80],b;
     gets(a);
     scanf("%c",&b);
     sc(a,b);
     return 0;
    }
    char sc(char *x,char y)
    {
     int i,a,b,n;
     n = strlen(x);
     for(i = 0;i < n;i++)
     {
      if(x[i] != y)
      {
       printf("%c",x[i]);
      }
     }
    }
    

    在恬不知耻的要个赞(想想博主大半夜连饭都没吃,就动动小手吧)

    展开全文
  • 输入个字符串,从第一个字符串中删除第二个字符串中的所有字符 比如输入“They are students." 删除之后的第一个字符串变成"The r stdnts." 思路是利用每字符都有其对应的ASCII码值,将需要删除的字符的ascii为...

    输入两个字符串,从第一个字符串中删除第二个字符串中的所有字符
    比如输入“They are students."
    删除之后的第一个字符串变成"The r stdnts."

    思路是利用每个字符都有其对应的ASCII码值,将需要删除的字符的ascii为下标储存在数组当中。
    利用两个指针分别指向原字符串和需要删除的字符串。
    因为我们已经将需要删除的字符串中的字符所对应的ASCII码作为下标储存在数组当中,所以在比较的时候只需要看原字符串中的字符所对应的ASCII码作为下标在数组中是否为1.
    这样说可能不好理解。看一下具体例子

    假如原字符串为

    char str1[] = "They aaaare students.";
    

    需要删除的为

    char str2[] = "aeiou";
    

    然后我们需要一个数组储存结果(将其初始化为0)

    int a[256] = { 0 };
    

    两个指针分别指向这两个字符串

    char* pFast = str1;
    char* pSlow = str2;
    

    我们想实现的是在字符串str1中找到‘a’,‘e’,‘i’,‘o’,‘u’这几个字符并删除
    第一步我们想在str1中找到所有的字符‘a’并删除
    也就是说我们所有想删除的字符都在str2中

    接下来我们把需要删除的字符对应的ASCII码作为下标,然后储存在数组中
    利用一个for循环

    for (i = 0; i < n; ++i){
    	a[str2[i]] = 1;
    }
    

    str2[i]对应的是所有需要在str1中删除的字符
    将其对应的ASCII码作为下标也就是 a[str2[i]];
    将其赋为1,表示该字符需要删除

    接下来实现代码的核心部分

    while (*pFast){
    	if (a[*pFast] == 1){
    		*pFast++;
    	}
    	*pSlow++ = *pFast++;
    }
    

    因为我们需要删除的是str1中的字符,所以这里的 while(pFast)是为了遍历str1
    接下来 if (a[pFast] == 1) 说明我们要删除这个字符。我们给pFast++,让pFast指针跳过这个字符,指到下一个字符,然后再赋给pSlow。
    这样做本质上是遍历str1,如果这个字符不需要删除,就拿过来赋给pSlow,然后pFast和pSlow同时自增
    如果需要删除,先给pFast自增,再
    pSlow++ = *pFast++;(自增同时赋值)

    别忘了最后

    *pSlow = '\0';
    

    给字符串结尾!

    但是这样的思路还存在一些问题。先看上面这个思路的完整代码,我们再来修改

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void DeleteStr(char* str1, char* str2){
    	char* pFast = str1;
    	char* pSlow = str2;
    	int a[256] = { 0 };
    	int i;
    	int n = strlen(str2);
    	for (i = 0; i < n; ++i){
    		a[str2[i]] = 1;
    	}
    	while (*pFast){
    		if (a[*pFast] == 1){
    			*pFast++;
    		}
    		*pSlow++ = *pFast++;
    	}
    
    	*pSlow = '\0';
    }
    int main(){
    	char str1[] = "They are students.";
    	char str2[] = "aeiou";
    	DeleteStr(str1, str2);
    	printf("%s\n", str2);
    	system("pause");
    	return 0;
    }
    

    这样去做题目中的要求我们可以实现,但是拓展之后,如果相同的字符连续出现,我们无法做到连续删除

    比如原字符串变成这样

    char str1[] = "They aaaare students.";
    

    仔细想想,来看我们上面的核心代码

    while (*pFast){
    	if (a[*pFast] == 1){
    		*pFast++;
    	}
    	*pSlow++ = *pFast++;
    }
    

    我们在确认一个字符需要删除之后,直接就跳过该字符,下一个字符没有进行判断是否应该删除就进行了赋值
    所以要将这段代码进行修改

    while (*pFast){
    	if (a[*pFast] == 0){
    		*pSlow = *pFast;
    		pSlow++;
    	}
    	pFast++;
    }
    

    这次我们判断

    if (a[*pFast] == 0){}
    

    就说明不需要删除可以赋值
    直接

    *pSlow = *pFast
    

    紧接着下来的一步我们不着急赋值,因为我们最终使用pSlow保存的结果,所以每赋值一次就先给pSlow++,这是pSlow++放在if语句中的原因。试想如果将pSlow++放在if语句之外,那么我们没有给pSlow赋值,指针也会不断往前走,这样肯定会出问题。
    先给pSlow++之后,在if语句之外给先给pFast++
    这时开始第二次循环
    这样做就能够实现在每一次赋值之前进行判断,就算相同字符连续出现也可以实现删除
    完整代码如下

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    void DeleteStr(char* str1, char* str2){
    	char* pFast = str1;
    	char* pSlow = str2;
    	int a[256] = { 0 };
    	int i;
    	int n = strlen(str2);
    	for (i = 0; i < n; ++i){
    		a[str2[i]] = 1;
    	}
    	while (*pFast){
    		if (a[*pFast] == 0){
    			*pSlow = *pFast;
    			pSlow++;
    		}
    		pFast++;
    	}
    	*pSlow = '\0';
    }
    int main(){
    	char str1[] = "They aaaare students.";
    	char str2[] = "aeiou";
    	DeleteStr(str1, str2);
    	printf("%s\n", str2);
    	system("pause");
    	return 0;
    }
    
    展开全文
  • 字符串1中出现的字母删掉,用splite,【split("指定字符串"),用来切割字符串中指定的字符串的,返回的是字符串的数组】 // 3.把返回的数组变成字符串,用join【join用来对数组进行拼接】  var a = ...
  • 指定位置输出字符串输入个字符串后再输入字符,输出此字符串中从与第一字符匹配的位置开始到与第二字符匹配的位置结束的所有字符。要求定义函数char* match(char* s, char ch1, char ch2)返回结果...
  • 输入个字符串,输出两个字符串集合的并集。 例如:接受的两个字符串为"abc"和"bcd",返回[‘a’, ’b’, ’c’ , ’d’] 思考: 1.输入个字符串,.split()以间隔符为界分割字符串。分割‘abc’可用list。 2....
  • 输入个字符串,从第一字符串中删除第二个字符串中所有的字符。例 如,输入”They are students.”和”aeiou”, 则删除之后的第一个字符串变成”Thy r stdnts.” - 输入描述: 每测试输入包含2个字符串 - 输出...
  • 题目:输入个字符串,从第一字符串中删除第二个字符串中所有的字符。  例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。 方法1: package com.jredu.ch12; /*...
  • 对输入8个字符串(每个字符串长度不超过20)按照字典顺序进行排序并输出。不限定排序方法,不能使用goto语句。 输入输出格式: 输入:%s 输出:%s\n 输入:多个字符串用空格分隔 输出:排序好的字符串,每行一个...
  • 输入个字符串,例如“ abcdabf[]tfeijkklb41 ",统计字符串中每字符出现的次数. public class Filestest { public static void main(String[] args) { Stringnum("abcdabf[]tfeijkklb41"); } public ...
  • 如:输入google,则找到最长对称字符串为goog;如输入abcda则能找到最长对称字符串为aba。 若最长对称字符串存在多,则输出多相同长度的最长对称字符串。 ``` package tech.lejian.test; /** * 找出最长...
  • 输入个字符串,输出两个字符串集合的并集。(10分) 题目内容: 输入个字符串,输出两个字符串集合的并集。 为保证输出结果一致,请将集合内元素排序之后再输出, 如对于集合aset,可输出sorted(aset)。  ...
  • 需求:输入一串字符串,统计字符串中每字符出现的次数** 分析: 1,定义一需要被统计字符的字符串 2,将字符串转化为字符数组,才能拿到每一字符 3,定义双列集合存储字符串中字符以及字符出现的次数 4,...
  • 例:输入abcddddkskk输出 abcdkspublic class Test04 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in);...请输入一行字符串"); ...
  • 输入个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。 第一种思路 直接通过遍历,我们依次判定第一...
  • 输入个字符串,计算字符串中子串出现的次数

    万次阅读 多人点赞 2016-04-23 19:54:17
    输入个字符串,计算字符串中子串出现的次数 字符串:“hellosdfdshellodsfdshello” 子串:“hello” 代码如下: #include #include int main() {  char * c = "hellosdfdshellodsfdshello";  char * d = ...
  • 例如,输入“ They are students.” 和 “aeiou”, 则删除之后的第一个字符串变为“Thy r stdnts.” 思路: 通过遍历,我们依次判定第一个字符串中是否存在第二个字符串中的第i字符,如果存在,则删除该字符,...
  • 题目:输入个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。 这里主要要分析两方面: 1、如何判断那些...
  • #include &lt;stdio.h&gt; #include &lt;string.h &gt; int main() { int i = 0; char s[80] = {"...输入个字符串:\n"); scanf("%s",s); strcpy(max,s); for(i=1
  • #include <stdio.h>...printf(“输入长度为5的字符串:\n”); for(i=0;i<5;i++) scanf("%s",&c[i]); for(i=0;i<2;i++) { ch=c[i]; c[i]=c[4-i]; c[4-i]=ch; } printf(“逆序后的字符...
  • /** * @author MrDong 输入个字符串,输出这个字符串中每字符的数量 */public class demo { public static void main(String[] args) { Scanner input = new Scanner(System.in); System....
  • import java.util.Scanner; public class Test29 { public static void main(String[] ...//把一个字符串的字符逆序输出 Scanner input=new Scanner(System.in); System.out.println(“请输入一段字符串:”); Str...
  • /*本题要求编写程序,针对输入的N个字符串,输出其中最小的字符串输入格式:输入第一行给出正整数N;随后N行,每行给出一长度小于80的非空字符串,其中不会出现换行符,空格,制表符。输出格式:在一行中用以下...
  • 输入若干个字符串(最多10),求出每个字符串的长度,并打印最长字符串的内容。以“stop”作为输入的最后一个字符串。 #include <stdio.h> #include <string.h> int main() { int i,max=0,num=0; char...
  • package com.sxt;import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println(“请输入个字符串:”);
  • 输入个字符串,然后把这个字符串倒置! 思路:很简单,就不具体比比了用指针指到字符串末尾,然后从后往前打印字符串,就倒置了!
  • 从键盘输入个字符串(长度<100),然后将字符串输入相反的顺序显示出来。 DATA SEGMENT Buf DB 100,?,100 DUP(?) LF DB 0AH DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA start: mov ax,DATA mov ds,ax ...
  • (1)输入10个字符串(每一串不多于9字符),依次放在a数组中,指针数组str中的每元素依次指向每个字符串的开始。 (2)输入每一个字符串。 (3)从这些字符串中选出最小的那个串输出。 #include<iostream.h&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,833,141
精华内容 733,256
关键字:

对输入的八个字符串