gpt4 book ai didi

c - Mac OS 更新后,Strcpy 不适用于循环的第一行

转载 作者:行者123 更新时间:2023-11-30 21:08:01 25 4
gpt4 key购买 nike

为清楚起见,删除了之前的草率问题。

编辑:这是我使用的代码的简短版本。如果我包含一些不必要的信息,我深表歉意(我对 C 不太熟悉)。

代码:

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>

#define SEQ 200
#define POS 100

char *copy_substr (char *source, int start, int end){
int x,y;
char target[1000];

for (x=0; x<sizeof(target); x++)
target[x]='\0';

for (x=start, y=0; x <= end; x++, y++)
target[y]=source[x];

return(target);
}

main(){
char seq[SEQ][POS];
int no=0;
char garbage[1000];
int x,y,z,i,j;
int len;


/* Reads in alignment file from stdin */
while (fgets(garbage, sizeof(garbage), stdin)){
x=0;

/* Finds boundaries */
while (garbage[x++] == ' ');
while (garbage[x++] != ' ');
while (garbage[x++] == ' ');
y=--x;

while(isalpha(garbage[x]) || garbage[x] == '.' || garbage[x] == '-')
x++;
x--;
printf("*%d %d %d*",no,x,y);
printf("%s",garbage);
strcpy(seq[no], copy_substr(garbage, y, x));
printf("%s\n",seq[no]);
no++;
}
len=strlen(seq[0]);
}

输入文件:

 4322822  PLP.......PG...WEIKIDPQTGWPFFVDHNSRTTTWNDPRVP
3560257 GLP.......KP...WIVKISRSRNRPYFFNTETHESLWEPPAAT
3046716 PLPNLGQSVKPP...WERATTAAN.VPYYIDHERQTTHWDHPEMI
3875252 PLP.......SG...WECITMNN.RTVFLNHANKETSFYDPRIRR
2827198c PLP.......EG...WEMRFTVD.GIPYFVDHNRRATTYIDPRTG
2708329c PLP.......EG...WEMRFTVD.GIPYFVDHNRRTTTYIDPRTG
3875841 PMP.......QG...WEMCYDSD.GVRYFKDHNSKTTTWDDPRLK
1171682d GLP.......PG...WEEKQDER.GRSYYVDHNSRTTTWTKPTVQ
2072503d ALP.......AG...WEQRELPN.GRVYYVDHNTKTTTWERPLPP
3411053b ELP.......YG...WEKIDDPIYG.TYYVDHINRRTQFENPVLE

输出:

*0 58 14*     4322822  PLP.......PG...WEIKIDPQTGWPFFVDHNSRTTTWNDPRVP
|=҇
*1 58 14* 3560257 GLP.......KP...WIVKISRSRNRPYFFNTETHESLWEPPAAT
GLP.......KP...WIVKISRSRNRPYFFNTETHESLWEPPAAT
*2 58 14* 3046716 PLPNLGQSVKPP...WERATTAAN.VPYYIDHERQTTHWDHPEMI
PLPNLGQSVKPP...WERATTAAN.VPYYIDHERQTTHWDHPEMI
*3 58 14* 3875252 PLP.......SG...WECITMNN.RTVFLNHANKETSFYDPRIRR
PLP.......SG...WECITMNN.RTVFLNHANKETSFYDPRIRR
*4 58 14* 2827198c PLP.......EG...WEMRFTVD.GIPYFVDHNRRATTYIDPRTG
PLP.......EG...WEMRFTVD.GIPYFVDHNRRATTYIDPRTG
*5 58 14* 2708329c PLP.......EG...WEMRFTVD.GIPYFVDHNRRTTTYIDPRTG
PLP.......EG...WEMRFTVD.GIPYFVDHNRRTTTYIDPRTG
*6 58 14* 3875841 PMP.......QG...WEMCYDSD.GVRYFKDHNSKTTTWDDPRLK
PMP.......QG...WEMCYDSD.GVRYFKDHNSKTTTWDDPRLK
*7 58 14* 1171682d GLP.......PG...WEEKQDER.GRSYYVDHNSRTTTWTKPTVQ
GLP.......PG...WEEKQDER.GRSYYVDHNSRTTTWTKPTVQ
*8 58 14* 2072503d ALP.......AG...WEQRELPN.GRVYYVDHNTKTTTWERPLPP
ALP.......AG...WEQRELPN.GRVYYVDHNTKTTTWERPLPP
*9 58 14* 3411053b ELP.......YG...WEKIDDPIYG.TYYVDHINRRTQFENPVLE
ELP.......YG...WEKIDDPIYG.TYYVDHINRRTQFENPVLE

预期输出:

*0 58 14*     4322822  PLP.......PG...WEIKIDPQTGWPFFVDHNSRTTTWNDPRVP
PLP.......PG...WEIKIDPQTGWPFFVDHNSRTTTWNDPRVP
*1 58 14* 3560257 GLP.......KP...WIVKISRSRNRPYFFNTETHESLWEPPAAT
GLP.......KP...WIVKISRSRNRPYFFNTETHESLWEPPAAT
*2 58 14* 3046716 PLPNLGQSVKPP...WERATTAAN.VPYYIDHERQTTHWDHPEMI
PLPNLGQSVKPP...WERATTAAN.VPYYIDHERQTTHWDHPEMI
*3 58 14* 3875252 PLP.......SG...WECITMNN.RTVFLNHANKETSFYDPRIRR
PLP.......SG...WECITMNN.RTVFLNHANKETSFYDPRIRR
*4 58 14* 2827198c PLP.......EG...WEMRFTVD.GIPYFVDHNRRATTYIDPRTG
PLP.......EG...WEMRFTVD.GIPYFVDHNRRATTYIDPRTG
*5 58 14* 2708329c PLP.......EG...WEMRFTVD.GIPYFVDHNRRTTTYIDPRTG
PLP.......EG...WEMRFTVD.GIPYFVDHNRRTTTYIDPRTG
*6 58 14* 3875841 PMP.......QG...WEMCYDSD.GVRYFKDHNSKTTTWDDPRLK
PMP.......QG...WEMCYDSD.GVRYFKDHNSKTTTWDDPRLK
*7 58 14* 1171682d GLP.......PG...WEEKQDER.GRSYYVDHNSRTTTWTKPTVQ
GLP.......PG...WEEKQDER.GRSYYVDHNSRTTTWTKPTVQ
*8 58 14* 2072503d ALP.......AG...WEQRELPN.GRVYYVDHNTKTTTWERPLPP
ALP.......AG...WEQRELPN.GRVYYVDHNTKTTTWERPLPP
*9 58 14* 3411053b ELP.......YG...WEKIDDPIYG.TYYVDHINRRTQFENPVLE
ELP.......YG...WEKIDDPIYG.TYYVDHINRRTQFENPVLE

请注意,copy_substr 对于输入的第一行不起作用(输出的第二行与预期输出的第二行不匹配)。

最佳答案

I am actually not exactly sure if this is related to the mac OS updates, but I have a C code that works for a computer at 10.6 but not for the other two macbooks at 10.10 and 10.11.6.

C 自创建以来就以同样的方式工作。计算机以同样的方式读取它。像凯勒姆一样,我认为问题在于代码本身而不是计算机/版本/操作系统/等

关于c - Mac OS 更新后,Strcpy 不适用于循环的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40645123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com