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

例如NetworkNumber:58.154.16.0-58.154.31.255NetworkName:SYIAEC-CN我要去这两行每行冒号后的字符串,分别存到另两个... 例如 Network Number: 58.154.16.0 - 58.154.31.255
Network Name: SYIAEC-CN
我要去这两行每行冒号后的字符串,分别存到另两个字符串中
展开
 我来答
985967518
推荐于2018-02-28 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109866
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部

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

例如:

#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);
return 0;
}
/*
输出:
56789 
*/
千锋教育
2015-10-14 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
#include<stdio.h>
#include<string.h> //支持strlen()的应用
#include<stdlib.h> //支持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<strlen(str2);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<strlen(s);i++)
{
array[count]=s[i];
count++;
}
return array;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jianwenh
2011-03-03 · TA获得超过333个赞
知道小有建树答主
回答量:432
采纳率:0%
帮助的人:338万
展开全部
#include <stdio.h>
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]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jseven_jy
推荐于2017-12-15 · TA获得超过8122个赞
知道大有可为答主
回答量:2499
采纳率:100%
帮助的人:1130万
展开全部
代码如下。。。我测试过了。。。。
#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<strlen(s1);i++)
if(s1[i]==':'){
j = i+1;
break;
}

for(i=0;j<strlen(s1);i++,j++)
result1[i] = s1[j];
result1[i] = '\0';
puts(result1);

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

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

希望对你有帮助。。。。仍有问题可以HI我。。。。。
更多追问追答
追问
这样只有两个可以 如果我有多个这样的信息呢?而且假如是
Network Number: 58.154.16.0 - 58.154.31.255
Network Name: SYIAEC-CN
dajlfangnaldnga:
dadagag,
Network Number: 58.154.16.0 - 58.154.31.255
Network Name: SYIAEC-CN
这样的怎么办,不光这几行信息,还有好几十行
追答
Network Number: 
Network Name:
提取的只是这两个后面的吗?其它的分号后面的还提取吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户36303
2011-03-05 · 超过35用户采纳过TA的回答
知道答主
回答量:177
采纳率:100%
帮助的人:0
展开全部
#include <stdlib.h>
#include <string.h>
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");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式