从字符数组中删除字符

/*实现程序的功能:从字符数组s中删除存放在c中的字符。*/

#include <stdio.h>

int main(int argc,  const char *argv[])
{
    char  s[80],c;

    printf("请输入一个字符串\n");
    gets(s);

    printf("请输入一个字符\n");
    scanf("%c",&c);

    //遍历字符串
    for (int i = 0; s[i] != ‘\0‘; i++) {
        if (s[i] == c) {
            //如果小标i对应的字符等于c,那么字符依次前移一位
            //注意:此处不能再使用i,因为循环完毕会导致i的值为字符串最后一个字符对应的下标
            for (int j = i; s[j] != ‘\0‘; j++) {
                s[j] = s[j+1];
            }
        }
    }
    printf("%s\n",s);
    return 0;
}
时间: 2024-10-01 20:10:02

从字符数组中删除字符的相关文章

倒置字符数组中的字符

问题:如何把字符串 "We are the world" 转成 "world the are we" ?如果最多只能用两个额外的变量又该如何实现这样的转换? 分析:1.把字符串转成字符数组,然后对字符数组进行操作. 2.选择倒置字符数组的方法:用一个临时变量temp来交换两个字符,然后依次移动数组中的其他元素:利用 A=A+B, B=A-B, A=A-B 方式来交换两个字符. 3.根据数组中首尾字符的位置来倒置它们之间的字符. 4.优化方法:减少循环的次数,减少变量

从字符数组中删除特定字符

#include<stdio.h> int main() { char str[100],c; int j,k; printf("please input a string:"); gets(str); printf("\nEnter a character:"); c=getchar(); for(j=k=0;str[j]!='\0';j++) if(str[j]!=c) str[k++]=str[j]; str[k]='\0'; printf(&qu

LeetCode | 1408. String Matching in an Array数组中的字符串匹配【Python】

LeetCode 1408. String Matching in an Array数组中的字符串匹配[Easy][Python][字符串] Problem LeetCode Given an array of string words. Return all strings in words which is substring of another word in any order. String words[i] is substring of words[j], if can be o

将数组中的字符按出现次数多少排序输出

原题 一个有N个元素的集合,其中有相同元素. 需要得到按重复元素多少排序的新集合. 输入  {"a","b","c","c","a","c"} 输出  {"c","a","b"} 求算法 import java.util.ArrayList; import java.util.Collections; import java.u

C:函数:功能:实现字符数组中所有字母的倒序存放并输出

前两天小测碰到一道题,建立一个函数,功能:实现字符数组中所有字母的倒序存放并输出,一开始觉得简单跟数字数组差不多,运行一下发现很多格式错误,这些是不必要的错误,现在就来说下,先说一下代码思路:定义一个字符数组假如有n个字符,让一个指针变量*p指向首地址,*(p+n-1)就是末地址,然后实现*p与*(p+n-1)值的互换,这边让*q=*(p+n-1)每换一次,p++,q--,当p>q时退出循环,我们来看下代码: 1 #include "stdio.h" 2 char change(

字符串分割到二维字符数组中:

/* *字符串分割,把一个长的字符串(可能有空格),分割到一个二维字符数组中. *并且输出 * *时间复杂度O(N) *注意在操作二维字符串数组时:使用"数组指针"操作能方便 int(*p)[LEN]; * */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include<stdbool.h> #define NDEBUG #include<assert.h>

php数组中删除元素之重新索引

如果要在某个数组中删除一个元素,可以直接用的unset,但今天看到的东西却让我大吃一惊 <?php $arr = array('a','b','c','d'); unset($arr[1]); print_r($arr); ?> print_r($arr) 之后,结果却不是那样的,最终结果是 Array ( [0] => a [2] => c [3] => d ) 那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是 array_splice(): <?ph

js数组之从数组中删除元素

使用pop()这个函数可以从数组中删除末尾的元素,shift方法可以删除数组中第一个元素.这些都是js中自带的函数,如果不使用这些函数的话,自己写的代码效率会很低的. <html> <head> <title>数组的字符串表示</title> <script type="text/javascript"> function B(){ var names1=["zhangsan1","lisi1&q

《Python CookBook2》 第一章 文本 - 检查字符串中是否包含某字符集合中的字符 &amp;&amp; 简化字符串的translate方法的使用

检查字符串中是否包含某字符集合中的字符  任务: 检查字符串中是否出现了某个字符集合中的字符 解决方案: 方案一: import itertools def containAny(seq,aset): for item in itertools.ifilter(aset.__contains__,seq): return True return False if __name__ == "__main__": l1 = list('python') l2 = set('x') prin