发新话题
打印

字符串转化成矩阵

字符串转化成矩阵

t1p1
p2t1
t2p2
p3t2
t3p3
p1t3
t4p2
p4t4
t5p4
p2t5
p5t2
t1p5
p6t3
t2p6
这么一组数据我写到了记事本里,已经存到了一个字符数组中,但是要转化成矩阵形式,就是说
t在前边的 为-1,p在前边的为1,在矩阵中的位置由两者的下标决定,行是t的下标,列是P的下标
矩阵设为A
比如:t1p1
A11=-1;
p2t1  A12=1;
请给提示个思路吧!我没有一点思路,怎么知道先是t还是先是P?有没有这方面的函数阿?

请各位高手指点迷津!
顺便说一句,我的那个字符串存储为整型数组的问题解决了,
for(int m=0;m<x;m++)
{
        pres1[m] = isdigit(pBuf1[m]) ? pBuf1[m] - '0' : -1;       
}
这样就可以了

TOP

只能用循环,一个一个的取出t和p,在循环中可以用比较字符串的方法取出里面的数字。

TOP

char **ch;
p=new (char *)[m];
for(int i=0;i<m;i++)
{
   p=new char[n];
} 动态创建二维数组,请问个位高手,我这里怎么提示 error C2143: syntax error : missing ';' before '['
这样做对吗?
我感觉得用三重循环,才能把每行字符取出来,然后再取出t,p,真够繁琐的

TOP

p=new (char *)[m];
不能这样符值
C语言对动态数组支持不好,需要写一大堆程序来处理,如果在VC环境下,可以做用CString对像。

TOP

typedef char * pchar;
pchar * chLine;
chLine = new pchar[dwFileLineRel];
for(int iRel= 0;iRel<dwFileLineRel;iRel++)
    chLine[iRel] = new char[10];
这样可以编译通过,假设最多每行有十个字符。可是怎么付值付不上呢?
int jR=0;
        for( int iLine=0; iLine<dwFileLineRel; iLine++)
        {               
                while(jR<dwFileLenRel+1)
                {
                        for(int iLie=0;iLie<10;iLie++)
                        {
                                if(pBufRel[jR]!='\n')
                                {       
                                        chLine[iLine][iLie]=pBufRel[jR++];                                                                               
                                }
                            else
                                {       
                                    break;
                                }
                        }
                        if(pBufRel[jR]='\n')
                        {
                                jR++;
                            break;
                        }
                       
                }
我再循环里边是这样付值的!dwFileLineRel 文件的行数,dwFileLenRel文件的所有字符数,iLine,iLie文件的行和列的下标,pBufRel这里边存着所有字符,

TOP

发新话题