C语言函数题,编辑一段函数,将输入的字符串的前三个字母移到后面!

在此框架内填写
#include <stdio.h>
#include <string.h>

#define MAXS 10

void Shift( char s[] );

void GetString( char s[] ); /* 实现细节在此不表 */

int main()
{
char s[MAXS];

GetString(s);
Shift(s);
printf("%s\n", s);

return 0;
}

//函数,输入字符串,返回字符串前三字母。

public function getStoreName($str){

$one = mb_substr($str, 0, 1, 'utf-8');

$two = mb_substr($str, 1, 2, 'utf-8');

$three = mb_substr($str, 2, 3, 'utf-8');

if(preg_match('/^[\x7f-\xff]+$/', $one)){  

$one = getFirstCharter($one);

}

if(preg_match('/^[\x7f-\xff]+$/', $two)){  

$two = getFirstCharter($two);

}

if(preg_match('/^[\x7f-\xff]+$/', $three)){ 

$three = getFirstCharter($three);

}

return   $one.$two.$three;

}

扩展资料:

写一个函数,将一个字符串中的元音字母复制到另一字符串,然后输出。

代码块:

方法1:

#include <stdio.h>

#include <string.h>

char ycopy(char x[], char y[]);           //定义复制函数。

main()

{

char a[20], b[20];

gets(a);                              //输入字符串。

b[20]=ycopy(a, b);                    //调用复制函数。

puts(b);                              //输出复制后的字符串。

return 0;

}

//元音复制函数。

char ycopy(char x[], char y[])

{

int m, i, j;

m=strlen(x);

for (i=0, j=0; i<m; i++){

if (x[i]=='a'||x[i]=='A')

y[j++]=x[i];

else if (x[i]=='e'||x[i]=='E')

y[j++]=x[i];

else if (x[i]=='i'||x[i]=='I')

y[j++]=x[i];

else if (x[i]=='o'||x[i]=='O')

y[j++]=x[i];

else if (x[i]=='u'||x[i]=='U')

y[j++]=x[i];

}

y[j] = '\0';

return y[j];

}

方法2:

#include <stdio.h>

#include <string.h>

void input(char st[]);                            //定义输入函数。

void output(char st[]);                           //定义输出函数。

void letter(char x[], char y[]);                  //定义元音复制函数。

int main()

{

char s1[20], s2[10];

input(s1);                                    //调用输入函数。

letter(s1, s2);                               //调用元音复制函数。

output(s2);                                   //调用输出函数。

return 0;

}

//输入函数。

void input(char st[])

{

printf("Please enter string: ");

gets(st);

}

//元音复制函数。

void letter(char x[], char y[])

{

int n=strlen(x);

for (int i=0, j=0; i<n; 

(x[i]=='a'||x[i]=='e'||x[i]=='i'||x[i]=='o'||x[i]=='u'||x[i]=='A'||x[i]=='E'||x[i]=='I'||x[i]=='O'||x[i]=='U') ? y[j++]=x[i++] : i++);

y[j]='\0';

}

//输出函数。

void output(char st[])

{

printf("The final string: %s\n", st);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-05
#include <stdio.h>
#include <string.h>

#define MAXS 10

void Shift( char s[] );

void GetString( char s[] ); /* 实现细节在此不表 */

int main()
{
char s[MAXS];

GetString(s);
Shift(s);
printf("%s\n", s);

return 0; 
}
void Shift( char s[] )
{
    char a[3];
    int i,j;
    for(i = 0; i < 3;i++)
        a[i] = s[i];
    for(i=3;s[i]; i++)
        s[i-3]=s[i];
    for(j=i-3, i = 0; i < 3;i++)
        s[j++] = a[i];
}

追问

调试不对(~_~;)

追答

void GetString( char s[] ); /* 实现细节在此不表 */
这个看说明 应该系统提供才对. 你调试的时候没这个函数.
可以在结尾加上
void GetString( char s[] )
{
gets(s);
}
不过如果是自动验证系统,应该不需要自己定义这个函数的

本回答被网友采纳
第2个回答  2018-06-25

相似回答