C语言取某个字符后的字符串存到另一个字符串

2024-12-04 10:04:22
推荐回答(5个)
回答1:

思路:先遍历字符串,如果找到该字符后,把后面的所有字符复制到另一个字符串。

例如:

#include 
#include 
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);
return 0;
}
/*
输出:
56789 
*/

回答2:

#include
#include //支持strlen()的应用
#include //支持exit(1)
char *mcopy(char*s ,int m); //函数的定义
void main(void)
{
char str1[100];
char *str2;

int m;
printf("请输入你要输入的字符串\n");
gets(str1);
printf("请输入你要开始复制字符的位置m\n");
scanf("%d",&m);
if(m>=strlen(str1)) //若输入m值过大,结束程序
{
printf("输入值超出字符串长度...\n");
exit(1);
}
str2=mcopy(str1,m); //程序的调用
for(int j=0;j 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 {
array[count]=s[i];
count++;
}
return array;
}

回答3:

#include
void main()
{
char buf[200]="Network Number: 58.154.16.0 - 58.154.31.255\0",buf1[200];
int i=0;
while(buf[i]!=0&&buf[i]!=':') i++;
if(buf[i]==':') i++;
sprintf(buf1,"%s",buf+i);printf("[%s]",buf1);/*buf1就是:后面的内容*/
}
运行如下:
[ 58.154.16.0 - 58.154.31.255]

回答4:

代码如下。。。我测试过了。。。。
#include "stdio.h"
main()
{
char s1[] = "Network Number: 58.154.16.0 - 58.154.31.255";
char s2[] = "Network Name: SYIAEC-CN";
char result1[30];
char result2[30];
int i,j;
for(i = 0; i if(s1[i]==':'){
j = i+1;
break;
}

for(i=0;j result1[i] = s1[j];
result1[i] = '\0';
puts(result1);

for(i = 0; i if(s2[i]==':'){
j = i+1;
break;
}

for(i=0;j result2[i] = s2[j];
result2[i] = '\0';
puts(result2);
getch();
}

希望对你有帮助。。。。仍有问题可以HI我。。。。。

回答5:

#include
#include
void main()
{
FILE *fp;
char buf[3][1024];
char *Input1=buf[0],*Input2=buf[1],*save=buf[2];
printf("请输入密码:\n");
scanf("%s",Input1);

fp=fopen("code.txt","w"); //以读写方式打开code.txt文件,如果没有文件就建立这个文件
fputs(Input1,fp); //将save里边的字符窜(即密码)写入code.txt文件中
printf("请再输入密码:\n");
scanf("%s",Input2);
fclose(fp);

fp=fopen("code.txt","r");
fgets(save,1024,fp);
fclose(fp);
if(strcmp(Input2,save)==0) //string.h 里边的函数
printf("success\n");
else
printf("error\n");
}