C语言将一个字符串的第0,2,4,6,8……位置的字符复制到另一个字符串中,并输出!

如题所述

#include<stdio.h>

#include<string.h>

intmain()

{

charstr1[]="123456",str2[7];

inti,j=0,len;

len=strlen(str1);

for(i=len-1;i>=0;i--)

{

str2[j++]=str1[i];

}

str2[6]='\0';

printf("%s",str2);

return0;

}

//方法二指针法

#include<stdio.h>

#include<string.h>

intmain()

{

charstr1[]="123456",*p,str2[7];

inti;

p=&str1[5];

for(i=0;i<strlen(str1);i++)

{

str2[i]=*p--;

}

str2[strlen(str1)]='\0';

printf("%s",str2);

return0;

}

扩展资料

C语言高效复制连接字符串

源字符串的长度未知且目标字符串大小固定时,遵循一些流行的安全编码准则来将连接结果限制为目标区大小实际上会导致两个冗余的传递。例如,按照CERT关于安全使用strncpy和strncat的建议,并且目标区的大小是dsize字节,我们可能会得到以下代码。

与对strncat的调用不同,当s1的长度大于d的大小时,上面对strncpy的调用不会将NUL('\0')结束符追加到d上。它是一个常见的想当然的错误。此外,当s1短于dsize-1时,strncpy函数将所有剩余的字符填满为NUL('\0'),这也被视为一种浪费的,因为随后对strncat的调用将覆盖掉它们。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-22
#include <stdio.h>
int main()
{
    char str1[100];
    char str2[50];
    char i;
    scanf("%s",str1);
    for(i=0;str1[i]!='\0';i++)
    {
        if(i%2==0)
            str2[i/2]=str1[i];
    }
    if(i%2==0)
        str2[i/2]='\0';
    else
        str2[i/2+1]='\0';
    printf("%s\n", str2);
}

第2个回答  2013-05-22
#include <stdio.h>

void mydup(char *src, char *dst)
{
char *p;
char *q;

p = src;
q = dst;
while(*p) {
*q = *p;
q++;p++;
if (*p == '\0') break;
p++;
}
*q = '\0';
}

int main()
{
char s[100] = "hello world!";
char t[100];
mydup(s, t);
printf("t= %s\n", t);
return 0;
}本回答被网友采纳
第3个回答  2013-05-22
void str2cpy(char *s,char *d)
{
while(*s)

{

*d++=*s++;

if(!*s)

break;

s++;

}
*d=0;

}

C语言中怎样将一个字符串的第0,2,4,6,8……位置的字符复制到另一个...
include<stdio.h> include<string.h> intmain(){ charstr1[]="123456",str2[7];inti,j=0,len;len=strlen(str1);for(i=len-1;i>=0;i--){ str2[j++]=str1[i];} str2[6]='\\0';printf("%s",str2);return0;} \/\/方法二指针法 include<stdio.h> include<string.h> intmain...

C语言取某个字符后的字符串存到另一个字符串
思路:先遍历字符串,如果找到该字符后,把后面的所有字符复制到另一个字符串。例如:include <stdio.h>#include <string.h>int main (){char ch1[]="123456789",ch2[20],a='4';int i=0,j=0;while(ch1[i++]!=a);while(ch1[i]){ch2[j++]=ch1[i++];}ch2[j]='\\0';puts(ch2)...

C语言取某个字符后的字符串存到另一个字符串
printf("字符串第%d个元素是%c\\n",m++,str2[j]); \/\/字符的输出}char *mcopy(char*s ,int m){ static char array[100]; int count=0; for(int i=m-1;i<strlen(s);i++) { array[count]=s[i]; count++; } return array;} 千锋教育 | 中国IT职业教育领先品牌 | 发布于2015-10-14 ...

C语言程序如何将一组字符窜倒着输出。如123456,输出为654321
include <stdio.h> include <string.h>int main(){ char a[100];int i;printf("输入字符串:\\n");scanf("%s", a);printf("倒叙输出:\\n");for(i = strlen(a)-1; i >= 0; i--)printf("%c", a[i]);printf("\\n");}本代码实用于任何长度小于100的字符串。那个什么工作室的...

C语言 将一个字符串中的元音字母复制到另一个字符串,然后输出
include <stdio.h>#include <string.h>\/*将字符串src中的元音字母复制到des中*\/\/*返回复制的元音字母个数*\/int vowelLetter (char *des, char *src) {int count=0;while (*src++) {\/*英语元音字母有5个*\/if (*src=='a'||*src=='A'||*src=='e'||*src=='E'||*src=='i'|...

...从第m个字符开始的全部字符复制成为另一个字符串
s1)会返回20,但这明显不是你需要的 gets(s1); printf("输入字符串为:%s ",s1); \/\/这里用strlen(s1)可以得到实际字符串长度 scanf("%d",&m); printf("m的值为:%d",m); copy(s1,s2,m); printf("result:%s\\n",s2); return 0;}void copy(...

c语言将一个字符串复制到另一个字符串
用标准函数 strcpy() 即可。例如:char s1[40]="abcd_1234";char s2[40];strcpy(s2,s1); \/\/复制到s2 printf("%s\\n",s2); \/\/输出。

C语言 将一个字符串中的元音字母复制到另一个字符串,然后输出
include<stdlib.h> include<string.h> int vowel(char *, char *);main(){ char input[100];char output[100];scanf("%s",input);printf("input is %s\\n", input);vowel(input, output);printf("output is :%s\\n", output);} int vowel(char *input, char *output){ int i,j=0;...

求教c语言怎么将字符串指定字符后面的数字提取,然后放入其他字符串?
情况1:输出数组字符串,字符串输出遇见'\\0',表示结束 情况2:按照单个字节打印,

...中从第m个字符开始的全部字符复制到另一个字符串,m由用户输入_百度...
cin >> m;\/\/按照提示:输入指定复制元素起始坐标 for (i = 0; b[i - 1] != '\\0'; i++)\/\/遍历从指定元素开始,到字符串结束停止 { b[i] = a[i + m -1 ];\/\/从a数组第m个元素开始依次复制给b数组 } cout << "第m个后面的字符串为:" << b << endl;\/\/输出b数组内容(...

相似回答