C语言程序:输入一段英文文字,要求删除其中某个单词。

作者&投稿:诏药 (若有异议请与网页底部的电邮联系)
c语言输入一段英文,单词之间有很多空格或者是换行,要求去掉不该出现的空格或者是换行。~

很久没碰C语言,可能有些思路不对,但我尽量按照C语言的方式给出思路:C应该是数组的形式存储字符串,那么你可以给一个flag,我给出大概的Python代码的实现逻辑:迁移到C语言的逻辑实现也一样。

大概就是这个思路。如果你的目的是存到另一个数组,那么可以先计算出目标数组的长度,记得C语言要求在定义时给出长度,计算方式类似于上面的打印逻辑。再将元素添加进去

由于多字节的字符,在按单字节方式取出时,都会大于127(ASCII表上限),所以只要判断取出的字符对应整数值大于127,那么就可以判断为多字节字符的组成部分,于是得到下面这个程序。
char input[] = "我I爱Love你You";
char *p = input;

char output[50];
int i = 0;

while((*p) != '\0')
{
if ((unsigned char)(*p) > 0x7F)
{
output[i] = *p;
i++;
}

p++;
}

output[i]='\0';
printf("%s", output);

#include <iostream>
#include <string>

using namespace std;

int main()
{
start:
char c;
string text, word;
string::size_type start;
cout << "请输入要删除的单词:";
cin >> word;
cout << "请输入文本:";
cin.sync();
getline(cin, text);
while((start = text.find(word)) != string::npos)
text.erase(start, word.size());
cout << word << endl;
cout << text << endl;
cout << "是否继续?(Y/N)" << endl;
cin >> c;
if(c == 'Y' || c == 'y')
goto start;
return 0;
}

这段代码可以删除重复出现的,比如输入wangjjjjjjjjie,想删除j,这回将其中所有的j删除。代码有不懂的私信。

#include<stdio.h>
#include <string.h>
#include<malloc.h>

int is_exist(char *p, char *q, int len);
void delete_vo(char *sen, char *vo);

int main()
{
char *sen = (char *)malloc(50 * sizeof(char)), *vo = (char *)malloc(50 * sizeof(char));
char ch;
printf("输入句子:");
scanf("%s", sen);
fflush(stdin);
printf("继续还是退出 y/n: ");
scanf("%c", &ch);
//putchar(ch);
while (ch == 'y')
{
printf("请输入待删除的单词:");
scanf("%s", vo);
delete_vo(sen, vo);
printf("删除后的句子:%s
", sen);
printf("继续还是退出 y/n: ");
fflush(stdin);
scanf("%c", &ch);
}
return 0;
}

void delete_vo(char *sen, char *vo)
{
int sen_len = strlen(sen), vo_len = strlen(vo);
char *p = &sen[0], *q = &vo[0];
int mark, k = 0;
do
{
sen_len = strlen(sen);
if (is_exist(p, q, vo_len))
{
mark = k;
for (int i = 0; i <= sen_len - mark - 1; i++)
{
*(p + i) = *(p + vo_len + i);
}
p--; k--;
}
p++; k++;
}while (k <= sen_len - vo_len);
}

int is_exist(char *p, char *q, int len)
{
do
{
if (*p == *q) { p++; q++; len--; }
else return 0;
} while (len > 0);
return 1;
}


人家要C语言的你整段c++的干嘛?

请问下 是要求只删除单词还是删除包涵的都算 比如 this is a book 这句 如果我输入is 是要求只删除is 还是把this 里面的这个 is 一起删除掉, 第二 要求程序能连续运行是指 对一句话重复删除还是每一次都需要重新输入新的一句话和新的一个单词?


用c语言编写程序,输入任意一串字符,再输入一个字符和一个位置,将此字符...
include<stdio.h> include<string.h> void insert(char a[],char c,int x,int n){ int i = n for(; i > x-1 ; i --)a[i + 1] = a[i];a[i] = c;} void main(){ int x;char c, a[40];puts("请输入字符串:\\n");gets(a);puts("请输入要插入的字符,和位置:\\n...

C语言里如何输入一段文字,输出结果,自动将“张三”两个字替换成“李四...
include <stdio.h> include <string.h> define N 5 int subcmp(char *s,char *s1){int i;for(i=0;i<N-1;i++)if(s[i]!=s1[i])return 0;return 1;} main(){char s[200],s1[N]="张三",s2[N]="李四";int i,j;printf("输入源字符串:");gets(s);printf("处理前...

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语言的程序
\/\/输入一组整数,统计其中奇数偶数个数,直到遇到回车结束(\\n)为止。#include<stdio.h>int main(){ int n,cnt=1,k=0; scanf("%d",&n); while(getchar()!='\\n') { if(n%2==0) k++;\/\/偶数个数 scanf("%d",&n); cnt++;\/\/输入个数 } printf...

编写一个程序,输入一个字母,若为大写字母,将其转换成小写字母后输出,否 ...
C语言程序:include <stdio.h>void main(){ char ch; printf("请输入一个字母:"); scanf("%c", &ch); if(ch >= 'A' && ch <= 'Z') ch += 32; printf("%c\\n", ch);} 运行测试:请输入一个字母:Ss ...

1. 用C语言写一段程序:从键盘上输入两数,判断其大小关系,将判断结果显 ...
1.include <stdio.h> include <string.h> int main(void){ int nNum1,nNum2;printf("请输入第一个整数:");scanf("%d",&nNum1);printf("\\n请输入第二个整数:\\n");scanf("%d",&nNum2);printf("\\n输入的两个数为:%d,%d,其大小关系为:",nNum1,nNum2)if(nNum1 < nNum2)...

C语言编写一程序,输入一个圆的半径,计算并输出该圆的周长于面积。在线等...
include <stdio.h>#include <stdlib.h>#include <math.h>#define PI 3.14159int main(){ float r; scanf("%g",&r); double s=PI*r*r; double c=2*PI*r; printf("%.*lf\\n",2,c); printf("%.*lf",2,s); return 0;} ...

用C语言写一段程序,输入X,求出Y。
这是一个分段函数,代码如下:计算程序是cal函数实现 include <stdio.h>#include <string.h>double cal(double x){ if (x < 1)return x; if (x < 10)return 2*x-1; return 3*x-11;}int main(){double x;scanf ("%lf", &x);printf ("%f\\n", cal(x)); return ...

输入一段英文及一个单词,写C语言程序找出这个单词出现的次数,if后面...
include<stdio.h>#include<string.h>int main(){int i,num=0;char a[200],b[20];gets(a);gets(b);for(i=0;a[i]!='\\0';i++) \/\/检查到串结束即可{if( strncmp(b,&a[i],strlen(b))==0) \/\/检查b的长度个数{num+=1;}}printf("The word '%s' appears %d time in the ...

C语言程序设计 输入数字1-7,输出对应的星期几(switch)
程序流程如下:1 输入变量a;2 对变量a进行判断(switch(a));3 根据a值输出对应的字符串;4 程序结束。代码如下:include <stdio.h>int main(){ int a; scanf("%d",&a);\/\/输入a switch(a) { case 1: printf("星期一\\n"); break; case 2: printf("星期...

红原县18025006040: C语言程序:输入一段英文文字,要求删除其中某个单词.
之垄慰宁: 请问下 是要求只删除单词还是删除包涵的都算 比如 this is a book 这句 如果我输入is 是要求只删除is 还是把this 里面的这个 is 一起删除掉, 第二 要求程序能连续运行是指 对一句话重复删除还是每一次都需要重新输入新的一句话和新的一个单词?

红原县18025006040: c语言程序,要求输入的一段英语,用程序让每句话首字母大写. -
之垄慰宁: #include<stdio.h> #include<ctype.h> int main(){char ch;int flag = 1;while((ch = getchar()) != '\n'){if(ch == '.' || ch == '?' || ch == '!')flag = 1;if(flag && isalpha(ch)){ch += 'A' - 'a';flag = 0;}putchar(ch); }return 0; }

红原县18025006040: 用C语言怎么实现输入一段英文文章.谢谢了! -
之垄慰宁: #include<stdio.h>#define Tmpfile"tmp.txt" main() {FILE*fp; char str; fp=fopen(Tmpfile,"w"); printf("请在下面写你要输入的文章\n"); while((str=fgetc(stdin))!='\t') { fprintf(fp,"%c",str);}; fclose(fp); }/* 我设置的是Tab再按回车键文件输入结束,所以在未输入完之前请不要按Tab键,否则按过Tab后输入的都将不被保存*/

红原县18025006040: c语言作业1、从键盘输入一段英文,找出长度最长和最短的单词,以及出现次数最多的字符.2、输出魔方阵,所谓魔方阵就是指这样的方阵,它的每一行、... -
之垄慰宁:[答案] 下面是魔方阵两种方法的代码: #include void main() { int a[16][16]; int i,j,k,p,m,n; /*初始化*/ p=1; while(p==1) { printf("请输入n.(0scanf("%d",&n); if((n!=0)&&(n { printf("矩阵阶数是:%d\n",n); p=0; } for(i=1;i for(j=1;j a[i][j]=0; } /*建立魔方...

红原县18025006040: C语言编程,输入一行字符,要求输出英文字母,数字,空格和其他字符的个数 -
之垄慰宁: 1. scanf 遇到空格会当作字符串停止了,所以要换成gets(str); 2. if(('a'<=str[i]<='z')||('A'<=str[i]<='Z')) 不等式不能连写,应该写成if(('a'<=str[i] && str[i]<='z')||('A'<=str[i] && str[i]<='Z')) 同样的,数字判断那句应为if('0'<=str[i] && str[i]<='9')

红原县18025006040: 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"); ...

红原县18025006040: 用C语言编写一段程序 -
之垄慰宁: //=== #include //--- void count(char a[100],int b[27],int c[27],int i) { int j; for(j=0;j='a'&&a[j]<='z') //统计各小写字母的个数 { b[a[j]-'a']++; } else if(a[j]>='A'&&a[j]<='Z') //统计各大写字母的个数 { c[a[j]-'A']++; } else //统计其他字符的个数 c[26]++; } } //-- void ...

红原县18025006040: 用C语言编写一段程序,要求:输入一段字符,分别统计出其中的英文字母、空格、数字和其他字符的个数. -
之垄慰宁: #include <stdio.h>#include <conio.h>#define LEN 50 int main (void) { char str[LEN]; char *p = str; char cap[LEN], low[LEN], num[LEN], space[LEN], oth[LEN]; /*分类存储字符*/ int capCnt, lowCnt, numCnt, spaceCnt, othCnt; /*分类计数*/ capCnt =...

红原县18025006040: C语言,输入一个英文语句,要求将句中的单词分别打印出来? -
之垄慰宁: #include "stdafx.h" #include <iostream> #include <string> using namespace std; int main() { string word;//声明一个字符串变量 while ( cin >> word )//当遇到空格时输出执行循环语句 cout<<word <<endl;//输出一个单词 return 0; }

红原县18025006040: C语言编程求解答(2) -
之垄慰宁: 参考答案:#include "stdio.h"#include "stdlib.h" void Output(int b[],float c[]);//输出函数 int * Input();//输入函数 menu_select();//菜单选择函数 char a[200];//定义文章大小,小了可以再大点 int b[26]={0};//定义数组统计各字母出现的...

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