结果应该是什么样子:

G -- C
C -- G
T -- A
T -- A
C -- G
T -- A
T -- A
A -- T
C -- G
C -- G
C -- G
G -- C
T -- A

它实际上是什么样子的:

GCTTCTTACCCGTGCCCCAC -- C
CTTCTTACCCGTGCCCCAC -- G
TTCTTACCCGTGCCCCAC -- A
TCTTACCCGTGCCCCAC -- A
CTTACCCGTGCCCCAC -- G
TTACCCGTGCCCCAC -- A
TACCCGTGCCCCAC -- A
ACCCGTGCCCCAC -- T
CCCGTGCCCCAC -- G
CCGTGCCCCAC -- G
CGTGCCCCAC -- G
GTGCCCCAC -- C
TGCCCCAC -- A
GCCCCAC -- C
CCCCAC -- G
CCCAC -- G
CCAC -- G
CAC -- G
AC -- T
C -- G
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <sys/mman.h>

int main(int argc, char **argv){

    int buff = 100;

    char *ptr = mmap (NULL,buff, PROT_WRITE | PROT_READ ,MAP_PRIVATE| MAP_ANONYMOUS,0,0);
        if(ptr == MAP_FAILED){
            printf("Mapping Failed\n");
            return 1;
        }
    char *oof = mmap (NULL,buff, PROT_WRITE | PROT_READ ,MAP_PRIVATE| MAP_ANONYMOUS,0,0);
        if(oof == MAP_FAILED){
            printf("Mapping Failed\n");
            return 1;
        }
    
    int f1 = open("file.txt", O_RDWR);
    int length = read(f1,ptr,sizeof(char)*buff);
    
    for(int i = 0; i<length;i++){
        if(ptr[i] == 'A'){
            oof[i] = 'T';
        }
        if(ptr[i] == 'T'){
            oof[i] = 'A';
        }
        if(ptr[i] == 'C'){
            oof[i] = 'G';
        }
        if(ptr[i] == 'G'){
            oof[i] = 'C';
        }
        
        printf("%s -- %s\n", &ptr[i],&oof[i]);
    }

}

我胡闹了好几次,把它弄坏了.我觉得我只是错过了一些东西,它没有进入我的头脑.

如果有人能给我出什么主意,那就太好了.

推荐答案

for()循环中,只需将printf()语句更改为打印字符,而不是字符串,如下所示:

printf("%c -- %c\n", ptr[i],oof[i]);

%c--表示字符

%s--用于字符串

另外,请注意,address operator(&)已被移除.我们只需要用于打印字符的每个数组的索引--而不是数组的地址(或数组索引的地址)--这对于打印字符串很有用.

C++相关问答推荐

如何将一个enum类型类型转换为另一个类型?

如何用C(使用两个s补数算术的32位程序)计算

如何启用ss(另一个调查套接字的实用程序)来查看Linux主机上加入的多播组IP地址?

在使用GTK 4 Columnview列表模型时,如何为多列添加排序函数.C编码,Linux/GNOME环境

C语言编译阶段与翻译阶段的关系

将宏值传递给ARM链接器,该链接器将变量放置在特定位置

我的程序在收到SIGUSR1信号以从PAUSE()继续程序时总是崩溃()

函数的限制限定指针参数允许优化调用方函数吗?

==284==错误:AddressSaniizer:堆栈缓冲区下溢

如何读取文件并将内容保存在字符串中?(在C语言中,没有崩溃或核心转储错误)

致命错误:ASM/rwan ce.h:没有这样的文件或目录.符号链接还不够

C堆栈(使用动态数组)realloc内存泄漏问题

用于计算位数和的递归C函数

Fscanf打印除退出C代码为1的程序外的所有内容

c程序,让用户输入两类数字,并给出输出用户输入多少个数字

C中的空指针是什么(_N)?

try 判断长整数是否为素数

按字典顺序打印具有给定字符的所有可能字符串

`%%的sscanf无法按预期工作

如何使用 raylib 显示数组中的图像