假定输入的字符串中只包含字母和*号。它的功能是:将字符串中的前导*号全部移到字符串的尾部。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了假定输入的字符串中只包含字母和*号。它的功能是:将字符串中的前导*号全部移到字符串的尾部。相关的知识,希望对你有一定的参考价值。

编写程序,用的是C语言,Microsoft Visual C++

#include <stdio.h>

void  fun( char *a )

char b[81];

char *c,*d;

c = a;

int i = 0;

while (*c == '*')

c++;

d = c;

while (*c != '\\0')

b[i] = *c;

i++;

c++;

int e = 0;

while (a < d)

b[i] = *a;

i++;

a++;

e++;

a = a - e;

for (int j = 0; j < i; j++)

*a = b[j];

a++;

*a = '\\0';

int main()

  char  s[81];  

int  n=0;

printf("Enter a string:\\n");

gets(s);

fun( s );

printf("The string after moveing:\\n");puts(s);

return 0;

扩展资料:

需要说明的是:

1、一个C语言源程序可以由一个或多个源文件组成。 

2、每个源文件可由一个或多个函数组成。

3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。 

4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。

5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“”之后不能加分号。(结构体、联合体、枚举型的声明的“”后要加“ ;”。)

6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

参考资料:

百度百科-C语言

参考技术A 源码如下:
#include <stdio.h>
#include <string.h>

void convertA(char *s)

int i, len = strlen(s);
for (i = 0; i < len; i++)
if (s[i] != '*') break;

if (i > 0) strncpy(s, &s[i], len - i);
for (; i > 0; i--) s[len - i] = '*';


int main (int argc, const char * argv[])

int s[100] = 0;
scanf("%s", s);
convertA(s);
printf("%s\n", s);

return 0;


==================
运行结果:
输入:**hello
输出:hello**
输入:*h*llo*
输出:h*llo**
==================
希望这是你要的结果,如果不是,请把你要的效果举例说明(欢迎追问),代码其实不难,难的是理解客户的需求。追问

上述提及的 得出的结果是对的 但我学的还是初等 你写的一些名词 木有学到过 例如:void convertA(char *s)
const char * argv[])

追答

void convertA(char *s) 这是一个子函数,你可以把它当成是一个实现了你要的那个功能的零部件,main函数是一个框架,只需要把零部件塞进来就可以了
const char * argv[] 这个你不懂正常,我是习惯了,这里没有用到这个东西,可以直接去掉,将int main (int argc, const char * argv[]) 修改为int main ()即可

如果还有其他看不懂的地方请继续追问,觉得很困难的地方我可以用你看的懂的写法写出来

追问

7.编写程序,其功能是:将s所指字符串中除了保留下标为奇数、同时ascii值也为奇数的字符外,其余的全都删除。
main()
int i,j,k;
char s[100];
gets(s);
k=strlen(s);
i=0;
for(j=0;j<k;j+=2)
if(s[j]%2==1) s[i++]=s[j];
s[i]=0;
puts(s);

这就是我们现在学的,差不多就这样的。谢谢了,你人很好。

追答

好吧,修改如下,这个应该没什么难度了:
main ()

int s[100] = 0, i, j, len;
gets(s);
len = strlen(s);
for (i = 0; i 0 && i != len)

for (j = 0; j 0; j--) s[len - j] = '*';

puts(s);

追问

输出来的是原数啊?

本回答被提问者采纳

C语言试题四十二之假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。

1、 题目

请编写一个函数function,它的功能是:假定输入的字符串中只包含字母和*号,它的功能是:将字符串中的前导*号全部移到字符串的尾部。 

 

 

 

 

 

 

 

 

 

 

 

2 、温馨提示

      C语言试题汇总里可用于计算机二级C语言笔试、机试、研究生复试中C程序设计科目、帮助C语言学者打好程序基础、C语言基础,锻炼您的逻辑思维和解决问题的能力,帮助你成为C语言笔试、机试解题高手,帮助你拿到C语言工作的offer每一个题目都附带源代码和运行结果,让你不再有任何困惑,妈妈再也不担心我的C语言了如果程序有任何看不懂或者哪个步骤不理解的地方都可以加我微信(15874274916)私聊我,或者有更好的思路解决办法都可以加我微私聊,一起探讨、希望可以正真的帮助到你,同时也可以扫下面的二维码关注我微信公众号,比如你还对生活、美食或者其它方面都感兴趣,都可以加微信交流,博主擅长讲解计算机相关方面的知识、如果大家对计算机方向、前端、移动端、服务端、数据结构、算法、网络、高数等等一些列方向比较迷茫或者不知道要学哪些?或者具体怎么学?或者其它方向有任何困惑都可以找我交流,谢谢大家关注。

 

 

 

 

 

 

以上是关于假定输入的字符串中只包含字母和*号。它的功能是:将字符串中的前导*号全部移到字符串的尾部。的主要内容,如果未能解决你的问题,请参考以下文章

C语言试题四十二之假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。

假定输入的字符中只包含字母和“ * ”号。编写一个函数fun,该函数的功能是将字符串中前导“ *

C语言试题五十七之假定输入的字符串中只包含字母和*号。请编写函数function,它的功能是:删除字符串中所有*号。在编写函数时,不得使用c语言提供的字符串函数。

C语言试题五十七之假定输入的字符串中只包含字母和*号。请编写函数function,它的功能是:删除字符串中所有*号。在编写函数时,不得使用c语言提供的字符串函数。

规定输入的字符串中只包含字母和*号.

删除字符串中指定的*