繁体   English   中英

从指向字符串的指针数组访问字符串的字符

[英]Access string's characters from array of pointers to strings

我是编程新手,并且遇到过以下特殊问题:

int *FindLine(char *lines[100],int line_number) {
  char **pointer=lines;
  int i,*stack,counter=0;
  stack=(int*)calloc(30,sizeof(int));
  for (i=0;i<line_number;i++)
    if (*pointer[i]=='{') { 
      stack[counter]=i+1;
      counter++;
    }
  return stack;
}

main(){
  char *line[100];
  FILE *fp;
  char FileName[20];
  char Buffer[100];
  fp=fopen(FileName,"r");

  while(fgets(Buffer,100,fp)!=NULL) {        
    line[i]=strdup(Buffer);                    
    i++;
  }            
  NumOfLines=i;
  Stack=FindLine(line,NumOfLines);
  system("PAUSE");
}

堆栈应该已经存储了每个'{'出现在的行号,而是仅在'{'是该行的第一个字符时才存储它。 C上是否有办法访问由指向字符串的指针数组中的指针所指向的字符串的每个单个字符?

更改

if (*pointer[i]=='{')

if (!strchr(pointer[i],'{'))

您可能需要添加

#include <string.h>

一开始。

pointer[i]指向字符串(字符数组)。 *pointer[i]给您字符串的第一个字符。 因此,如果条件仅检查第一个字符。

所以你必须使用strchr

strchr检查字符串中是否有'{'字符。 如果找到,则返回指向首次出现的指针;如果未找到,则返回0 / NULL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM