C语言编程问题:输入一个字符串,再输入一个字符ab,将字符串中所有的ab字符删除后输出该字符串。 C语言:用一个字符数组从键盘输入一个字符串,删除字符串中所有...

作者&投稿:高莫 (若有异议请与网页底部的电邮联系)
大致思考方法:
定义三个字符串:str[], ab[], output[],str是输入的第一个字符串,output放的是最后的结果。
设置两个下标 i,j。i指向第一个字符串,j指向第二个子符串;
i每次向后移动一个位置,i往后的strlen(ab)个字符是不是和字符串ab匹配,如果不匹配就把str[i]添到字符串output中,如果匹配,就让i直接跳过strlen(ab)个位置;
具体还是看代码吧!自己在纸上画一画就明白了。
#include<stdio.h>
#include<string.h>
int main(void)
{
char str[30], ab[5], output[30];
scanf("%s", str);
scanf("%s", ab);
int i, j, outputIndex = 0;
for(i = 0; i < strlen(str); i ++)
{
for(j = 0; j < strlen(ab) && i + j < strlen(str); j ++)
{
if(str[i + j] != ab[j]) break;
}
if(j != strlen(ab))
output[outputIndex ++] = str[i];
else
i = i + strlen(ab) - 1;
}
output[outputIndex] = '\0';
printf("%s\n", output);
return 0;
}

#include <stdio.h>
void delchar(char* str, char c) {
int i = 0, j = 0;
while (str[j] != 0) {
if (str[j] != c) {
str[i] = str[j];
i++;
}
j++;
}
str[i] = 0;
}
int main()
{
char s[100];
while (scanf("%s", s) != EOF) {
delchar(s, 'a');
printf("[%s]\n", s);
}
return 0;
}
想象两个下标一个i一个j。j一直向前走,如果碰到要剔除的字符就跳过去,但是i不跳过去,如果不是要剔除的字符就复制给i,然后i也前进,这样就把要剔除的字符删掉了。只用遍历一遍,用strcpy发现一个要删除的字符就复制一遍,额外多做了很多无用功。

简单,比如s1是主字符串,s2是子字符串,遍历s1判断有无s2就可以。

C语言编程:输入一个字符和字符串,删除字符串中和输入字符相同的所有字符,输出处理后的字符串。~

#include
#include
#define LEN 100

void delete_same(char * str,char ch)
{
int i=0;

for(i=0;str[i]!=0;i++)
{
if(str[i]==ch)
{
strcpy(str+i,str+i+1);/*删除相同元素*/
}
i--;
}
}

void main()
{
char ch;
char str[LEN];

printf("Please input the string:");
gets(str);

printf("Please input ch:");
ch=getchar();

delete_same(str,ch);

printf("After modify string is:%s
",str);
}

#include
int main()
{
char a[80];
gets(a);
int i, j = 0;
for(i=0; a[i]; i++)
if((a[i] >= 'a' && a[i] ='A' && a[i] <= 'Z'))
{
a[j] = a[i];
j++;
}
a[j] = '\0';
puts(a);
return 0;
}

扩展资料:main函数用法
1、C++中的main函数
C++继承了C语言的大部分特性,因此保留了“程序总是从main函数开始执行,且总是默认从main函数的return语句或结尾处结束运行”这一传统,但是要注意,C++中的main函数要想作为程序执行的出入口,必须写在全局(Global)范围,
不能写成某个结构体或某个类的成员。虽然main函数可以作为结构体或者类的成员函数,但相应地会失去作为程序出入口的功能。
C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数。
2、Java中的main函数
Java同样是以main函数作为程序执行出入口的,但Java作为“更纯洁”的面向对象语言,它的main函数与C/C++有很大的不同。
首先,返回值的概念淡化,在Java Application中main不允许返回值,因此int main是被禁止的,必须使用void main,int main仅限在JavaBean中使用。
其次,Java中所有的函数必须属于类,没有什么全局函数一说,因此main函数不能是全局成员,必须是某个类的成员。
第三,由于main函数变成了类的成员函数,因此要想直接被系统调用,还必须使用public static使其成为静态函数并具有公开权限。
第四,main函数的参数被简化,只需要提供字符串数组即可,不需要提供参数个数(这是由于Java的数组具有下标检查功能的原因)
Java Application中的main函数一般格式如下(类名可以自定义,但保存为Java源码时,主文件名必须与类名相同,否则可能无法运行)
public class MainDemo{
public static void main(String[]args){
//TODO:在此处写入主函数的内容
}
}
Java Applet的运行机制与Java Application完全不同,因此不需要main函数
3、C#中的main函数
C#中的main函数与Java大同小异,同样必须是类成员,同样使用字符串数组作唯一参数,同样是静态函数,同样的void main,
与之不同的是:main的首字母变成了大写,即"Main函数“,且是否限定为public级别已经无所谓了(默认没有public,但某些场合可能还是需要public)
另外,需要注意的是,C#中不再有”类名必须与主文件名同名“的限制,即使类名不和主文件名相同,程序照样可以运行。
C#应用程序中的main函数默认是这样的(注意main的首字母已是大写)
C#和C/C++、java不同的是C#不在拘泥于必须从main()函数开始执行,C#是属于事件触发。
class Program{
static void Main(string[]args){

请问大神,C语言题,编程功能实现:输入一个字符串,输出字符串中的数字部分...
答:void main(){char str[50];int i=0; //i是数组下标. gets(str); //输入字符串.int s=0;while(str[i]) //当数组元素不是字符串结束符时.执行while{ if(str[i]>='0'&&str[i]<='9') //如果数组元素是数字. 就输出这个元素. { s=s*10+int(str[i])-int('0');...

c语言程序设计答案 编程实现,从键盘输入一个字符,则输出其后的字符,如...
答:程序源码如下:define _CRT_SECURE_NO_WARNINGS//VS环境下需要,VC不需要 include<stdio.h> void main(){ char a;//定义一个字符 printf("请输入一个字符:");//文字提示 scanf("%c", &a);//输入一个字符 printf("其后续字符为:");//文字提示 printf("%c\n", a + 1);//输出其...

用C语言编写一个程序,输入一个字符串,统计其中各个字符出现的次数_百 ...
答:源程序代码如下:include "pch.h"define _CRT_SECURE_NO_WARNINGS//VS环境下需要,VC不需要 include<stdio.h> int main(){ char c = 0;//定义输入字符变量 int num_count = 0;//数字个数 int bigalp_count = 0;//大写字母个数 int littlealp_count = 0;//小写字母个数 int emp_count...

C语言,输入1个字符串,然后显示出这个字符串的最后一个字符,我编的哪里...
答:这段程序问题比较多:include<stdio.h>#include<string.h>char lastchar (char str[]){ int i; i = strlen(str); if(str[0]!='\0') return str[i-1]; // 不能返回printf的结果。返回倒数第二个字符(而不是返回\0)。 return '\0'; // char类型,不能返回NULL}...

C语言编程:从键盘中输入一个英文字符串
答:include<stdio.h> include<stdlib.h> int main(){ int strSize = 100;char *str = (char *)malloc(sizeof(char) * strSize);int charNum = 0;char input;//逐个字符输入字符串,可以输入int可以表示的最大值个字符 printf("请输入任意个字符:\n");while(true){ scanf("%c",&input);...

用java语言编写程序,任意输入一个字符串,从最后一个字符开始倒序输出他...
答:机器语言 其他类似问题2014-10-18 用Java写一个程序,输入一个字符串,倒序输出 9 2012-07-28 用java编写一段程序,输入一段字符串,然后输出该字符串的倒... 7 2014-10-18 输入一个字符串,将其倒序输出,用Java编程实现 3 2009-09-23 用java编写程序,使一段字符串输出时,与原串字符顺序相反 9 2014...

用C语言编写一段程序,要求:输入一段字符,分别统计出其中的英文字母、空...
答:othCnt; /*分类计数*/capCnt = lowCnt = numCnt = spaceCnt = othCnt = 0;puts ("输入字符串:");gets (str);while (*p) {if (*p>='A'&&*p<='Z') {cap[capCnt] = *p;capCnt++;}else if (*p>='a'&&*p<='z') {low[lowCnt] = *p;lowCnt++;}else if (*p>='0'...

用汇编语言编译一个程序\从键盘输入一个字符串将其每个字符的ASCII码...
答:;入口:AL存放ASCII ;出口:转换后数值在AL asc2bin proc sub al, 30h cmp al, 9 jbe next sub al, 7 next: ret asc2bin endp end main 上面的程序是:从键盘输入1~5之间的一个数,在屏幕上显示one…five。虽然不一样,但要求差不多,希望对你有帮助!

c语言问题,输入一个字符串,将指定位置的字符删除。。求解。。。感谢_百...
答:其他回答 定义一个字符串数组,然后用for语句循环,找到你要删除的那个字符,删除后就退出循环。 menghuahewei | 发布于2011-11-01 举报| 评论 2 0 为您推荐: c语言程序设计 c语言 字符串 c语言隐藏字符串 c 字符串删除指定字符 c语言字符串删除* c语言字符串消失 c语言字符串折叠 c语言寻找...

C语言编程题目 给一个字符串,请找出出现次数最多的大写英文字母。_百 ...
答:#include<stdio.h> #include<string.h> void main(){ chara[100];intfre[26];int i,len,big=0;gets(a);for(i=0;i<26;i++)fre[i]=0;len=strlen(a);for(i=0;i<len;i++)if(a[i]>='a'&&a[i]<='z')fre[a[i]-'a...