要求编写一个C语言程序,输入一个包含字母和号的字符串(字符串长度小于100),将字符串尾部的 * 号全部删除,前面和中间的 * 号不删除;然后输出删除后的字符串。例如,字符串中的内容为"**ABC**DEF*****",删除后,字符串中的内容应当是"**ABC**DEF"。
时间: 2023-11-14 17:12:49 浏览: 76
这是一个C语言程序,目的是输入一个包含字母和*号的字符串,将字符串尾部的*号全部删除,前面和中间的*号不删除,然后输出删除后的字符串。这个程序使用了指针来实现字符串的处理。具体实现方法如下:
1.定义一个指向字符串的指针st,将其指向输入的字符串。
2.计算字符串中尾部的*号的数量num。
3.将指针st向后移动num个位置,即将尾部的*号全部删除。
4.在字符串的末尾添加'\0',以表示字符串的结束。
5.返回指针st,即为删除后的字符串。
下面是代码实现:
```
#include<stdio.h>
#include<string.h>
#define N 100
char *StrDel(char *s) {
int len,i,j,n,num=0;
char *st=s;
len=strlen(s);
for(i=0;s[i]=='*';i++) num++;
for(i=0;i<len-num;i++) st[i]=s[i+num];
for(i=len-1;i>=len-num;i--) st[i]='\0';
return st;
}
int main() {
char a[N];
gets(a);
puts(StrDel(a));
return 0;
}
```
相关问题
编写程序,输入一个长度小于100字符串,以回车键结束输入,保存在数组a中,假定输入的字符串中只包含字母和*号。除了尾部的*号之外,将字母串中其他*号全部删除。c语言
可以使用以下代码:int i=0;
while (a[i]!='\0'){
if (a[i]=='*' && a[i+1]!='\0'){
a[i]='\0';
for (int j=i;j<100;j++){
a[j]=a[j+1];
}
}
else{
i++;
}
}
帮我用c语言实现程序功能:输入一个字符串到字符数组(数组的长度为100),要求在该字符串的尾部插入该字符串中的最大字符。 输入格式: 输入长度小于100的字符串 输出格式: 结果字符串
在C语言中,我们可以创建一个简单的程序来实现这个功能。下面是一个示例代码,它会接收输入的字符串并在尾部插入最大的字符:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 100
int main() {
char input[MAX_LENGTH];
char max_char;
int max_index;
// 输入字符串
printf("请输入一个长度小于100的字符串: ");
fgets(input, MAX_LENGTH, stdin); // 使用fgets以避免换行符
input[strcspn(input, "\n")] = '\0'; // 清除fgets留下的换行符
// 找出字符串中的最大字符和其索引
for (int i = 0; i < strlen(input); i++) {
if (input[i] > max_char) {
max_char = input[i];
max_index = i;
}
}
// 将最大字符插入字符串末尾
strcat(input + strlen(input), &max_char);
// 输出结果
printf("结果字符串: %s\n", input);
return 0;
}
```
这段代码首先接收用户的输入,然后遍历整个字符串来找到最大字符及其索引。接着,它使用`strcat`函数将最大字符追加到字符串的末尾。最后,输出结果字符串。
阅读全文