English 中文(简体)
C. 大量投入 - 部分损失
原标题:C: Large String input --> Segmentation Fault

我的问题是,这部法典只是以微小的投入方式运作。

守则应当检查一项投入是否属于Palindrom。 还有两种选择,即履行额外职能(这一错误也是推测器,在我对职能发表意见时)

for example: input "otto" - is okay "reliefpfeiler" - is okay "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" --> segmentation fault

int main(int argc, char **argv)
{
   char* str;
   int erg;
   int c;
   char stroriginall[50];

   fgets(str,50,stdin);
   str[strlen(str)-1]=  ; 

   if(strlen(str)>40)
   {
      printf("%s: Error, input must <=40!",argv[0]);
      return 1;
   }

   strcpy(stroriginall,str);

   while ((c=getopt(argc, argv, "si")) != -1)
   {
      switch(c)
      {
      case  s :
         str=removeSpaces(str);
         break;
      case  i :
         toLowerCase(str);
         break;
      }
   }

   erg=checkPalindrom(str);

   if(erg==0)
   {
      printf("%s ist ein Palindrom
",stroriginall);
   }
   else
   {
      printf("%s ist kein Palindrom
",stroriginall);
   }

   return 0;
}

i 希望任何人能够帮助我:

最佳回答

你们的问题之一是,<代码>>> <>s> /code> 仅仅是一个点子(就这一事项而言是初步的),你没有为之分配任何记忆。 见:

char* str;
int erg;
int c;
char stroriginall[50];

fgets(str,50,stdin);

更改<代码>char* str至str[50]。 电话:fgets Store 50 chars into the footnote pointer to by str, 但没有为>分配任何记忆。 因此,你ault。

我们还没有界定你的职责,你在什么地方会遇到更多的问题。

你们也应该能够就你的汇编者发出所有警告,以便在汇编时间向你们指出这些问题(如果它没有这样做的话)。

问题回答

暂无回答




相关问题
Simple JAVA: Password Verifier problem

I have a simple problem that says: A password for xyz corporation is supposed to be 6 characters long and made up of a combination of letters and digits. Write a program fragment to read in a string ...

Case insensitive comparison of strings in shell script

The == operator is used to compare two strings in shell script. However, I want to compare two strings ignoring case, how can it be done? Is there any standard command for this?

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

String initialization with pair of iterators

I m trying to initialize string with iterators and something like this works: ifstream fin("tmp.txt"); istream_iterator<char> in_i(fin), eos; //here eos is 1 over the end string s(in_i, ...

break a string in parts

I have a string "pc1|pc2|pc3|" I want to get each word on different line like: pc1 pc2 pc3 I need to do this in C#... any suggestions??

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...

热门标签