English 中文(简体)
将复制件从“强盗”中删除
原标题:Remove the duplicate from a String Using Pointers
#include<stdio.h>
char *removedps(char *x)
{
    int Ar[256] = {0};
    int ip=0;
    int op=0;
    char temp;
    while(*(x+ip))
    {
       temp  = (*(x+ip));
       if (!Ar[temp])  {
         Ar[temp] = 1;
         *(x+ip) = *(x+op);
         op++;
       }
       ip++;
       *(x+op) =   ;
    }
  return x;
}

int main()
{
  char lo[] = "0001";
  printf("%s",removedps(lo));    
}

My code is not working I have tried hard to see the error All I GET IS the first character . My idea is simple make an array of 256 places insert Zero into them Then insert 1 for each character inside the string (on that position of the array)

问题回答

your assignment looks to be the error here.

“排位”是指“位置”

因此,

*(x+op) = *(x+ip);

而不是其他方式。

www.un.org/Depts/DGACM/index_french.htm

is always run every iteration of the loop.

我更喜欢这样做(使用你的方法,我很想不亲自使用这种方法)。

char *removedps(char *x)
{
    int Ar[256] = {0};
    char* start = x;
    while(*x)
    {       
        if (Ar[*x])   
        {  // remove the repeated character 
           memmove(x, x+1, strlen(x));
        }   
        else
        {
            Ar[*x] = 1;
            x++;
        }       
    }
    return start;
}

also, I d name it remove_duplicate_chars or something, not a fan of cryptic abbreviations.

页: 1

尝试做的是:

for (op=ip=0;x[ip];ip++) {
 if (!Ar[x[ip]]++) x[op++]=x[ip];
}
x[op]=0;




相关问题
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 "...

热门标签