C语言提取一列字符中的某个字符,怎么提取啊

现在我有一个蛋白质序列,其中有一段是这样的

ATOM 238 C SER A 443 57.411 -13.573 28.077 1.00 34.55 C
ATOM 239 O SER A 443 58.137 -12.748 28.613 1.00 35.29 O
ATOM 240 CB SER A 443 55.172 -13.435 26.988 1.00 32.84 C
ATOM 241 OG SER A 443 55.811 -12.497 26.124 1.00 31.21 O
ATOM 242 N PRO A 444 57.880 -14.544 27.309 1.00 36.40 N
ATOM 243 CA PRO A 444 59.291 -14.589 26.897 1.00 37.11 C
ATOM 244 C PRO A 444 59.757 -13.257 26.325 1.00 37.48 C
ATOM 245 O PRO A 444 60.901 -12.868 26.589 1.00 38.40 O
ATOM 246 CB PRO A 444 59.294 -15.640 25.787 1.00 38.05 C
ATOM 247 CG PRO A 444 58.097 -16.548 26.106 1.00 37.84 C

但是每一行文字中只有最后一个字符(大写英文字母)是有用的信息,希望有高手帮帮忙,做一个C语言的程序,可以把很多行(3万左右)行这样的信息复制入程序中,然后运行结果是最后的字符。而且得到的结果是每一个只有一个字符,后就是回车,字符前没有空格,是按列的格式排下来的。行数和本来的信息是一样的,可以复制到TXT文件中

教你一个土办法,直接复制到WORD,右对齐,确保每一行数据都在页面上没有断行,然后一直按住ALT,用左键选择你要的字符,向下拖动就能选中同一列的字了,然后复制,粘贴就行了,不过这个方法不太适合30000行,不过你可以试着让页面显示比例缩小(按住CTRL,滚动鼠标的滚轮就可以缩放页面了),然后再“ALT+左键选择后拖动框选”,你可以试试

想了想,还可以用excel表格做,粘贴到EXCEL后,如果它直接就能帮你分列,那就最好了,要是不行,粘贴后所有数据都在同一列,那就选中该列,在标题栏“数据”—“分列”——选择分隔符号,选为空格和TAB,点击完成就可以了。这个操作是最简单的,也是最快的,一次操作最多可以自动分列65535行。而且不单是最后的字符能分列,其他数据也会帮你分好。

嘿嘿,厉害吧~~~Microsoft Excel 这软件真的蛮好用的,我去年才开始用的
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-10-27
#include<stdio.h>
#include<string.h>
char tail(char *line){
if(!line)return -1;
if(*(line+strlen(line)-1)=='\n')
*(line+strlen(line)-1)=0;
return *(line+strlen(line)-1);
}
int main(){
#define IN "在这写输入文件名,需要有完成路径"
#define OUT "这里写输出文件名,也需要路径"
FILE *fp_in,*fp_out;
char buf[BUFSIZ];
fp_in=fopen(IN,"r");
fp_out=fopen(OUT,"w");
if(!fp_in || !fp_out)return -1;
while(fgets(buf,BUFSIZ,fp_in)>=0){
fprintf(fp_out,"%c\n",tail(buf));
}
printf("ok\n");
fclose(fp_in);fclose(fp_out);
return 0;
}本回答被提问者采纳
第2个回答  2008-10-19
char st[1024];
int L;
用 fgets 读入一行
用 L = strlen(st); 得一行长度,包含行尾新行符。
你要的每行最后一个字符是st[L-2]
循环3万次左右,读到EOF 结束。
第3个回答  2008-10-19
不太会C的文件操作,用C++来实现应该是不难,不知你想想要,

#include<fstream>
#include<string>
#include<iostream>
using namespace std;
ifstream &open_file(ifstream &in ,const string name)
{
in.close();
in.clear();
in.open(name.c_str());
return in;
}

int main()
{
string ifilename="input.txt";
string ofilename="output.txt";
ofstream outstrm;
outstrm.open(ofilename.c_str());
if(!outstrm)
{
cout<<"open file error!"<<endl;
return -1;
}
ifstream instrm;
if(!open_file(instrm,ifilename)){
cout<<"open file error!"<<endl;
return -1;
}
string line;
while(getline(instrm,line))
{
outstrm<<line[line.size()-1]<<endl;
}
outstrm.close();
instrm.close();
return 0;
}
第4个回答  2008-10-22
真麻烦,到LINUX下,直接一个命令:
cat 原文件 | awk '{print $12}' > 新文件

C语言提取一列字符中的某个字符,怎么提取啊
然后一直按住ALT,用左键选择你要的字符,向下拖动就能选中同一列的字了,然后复制,粘贴就行了,不过这个方法不太适合30000行,不过你可以试着让页面显示比例缩小(按住CTRL,滚动鼠标的滚轮就可以缩放页面了),然后再“ALT+左键选择后拖动框选”,

C语言如何取一串字符串中的某个字符
C中的字符串就是一个字符数组。如:char s[10]="wo shi SB";char c;取最左边的字符,就是c=s[0];

c语言中怎么输出字符串中的某个字符
还可以采用指针方式输出相应位的字问符,如:char p=s ;\/\/字符字符指针p,指向字符串首地址 printf("%c",(p+3));\/\/输出第四个字符'd'或 p+=3;\/\/先移动指针到第四个字符位置 printf("%c",p );\/\/输出当前字答符'd'

c语言怎么提取文本文件中我想要的一些信息?
使用文件操作函数fscanf即可提取文本当中特定的信息。例如要提取一个整数,可以用fscanf(fp,"%d",&n);要提取一个字符串可以用fscanf(fp,"%s",s),其中fp为文件指针。1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。...

c语言中怎么截取中间的字符?
可以用memcpy(),如下面代码:char s="abcdefg";char str[4]={0};我们要截取"def"则可以这样:memcpy(str,s+3,3);用法就是memcpy(缓冲区,字符串第n个元素,截取长度m);

C语言中怎样获得字符串中的单个字符
char str[]="hello" ;int i;for( i=0;str[i];i++ ) printf("%c\\n", str[i] ); \/\/以数组方式引用一个字符:str[i] for( i=0;*(str+i);i++ ) printf("%c\\n", *(str+i) ); \/\/以指针方式引用一个字符:*(str+i)存储在string中(仅支持C++)string str="abcde...

C语言怎么把字符串中的某一部分提取出来?
function QueryStr(split) { split = split.split('.');var result = split[1];return result;} (function () { alert(QueryStr("www.baidu.com"));});会弹出 用Asp.Net 写 string url = "www.baidu.com";string[] split = url.Split('.');string result = split[1];Label1....

c语言中怎么从字符串中取字符
char s[]="ssssabedbewb";int len;char *p;s[2]; \/\/第一种方法 printf("输入输入字符串的长度:");scanf("%d",&len);printf("输入字符串:");p=malloc(len);scanf("%s",p);printf("%c",p[3]); \/\/第二种方法 显然第二种方法更灵活,不过就是有点烦 ...

C语言如何实现取字符串的一部分?
例子如下:直接编译,程序输出结果中任意输入字符串和数字,程序执行结果如下图所示:

c语言怎么截取文本文件的指定字段?
先把a.txt里的数据读到一个字符串string里,然后用一个函数(find)去找字符‘#’,然后用方法delete删掉,或是用空格替代。然后再把处理过的字符串重新写到b.txt中

相似回答