-2

请你能给我一些将字符串转换为的想法,例如: char string[20]="www.msn.es" 到另一个字符串: 3www3msn2es0 。我只是想要一些想法,我应该使用 strstr 还是你可以用 char 指针和 bucles 来做。非常感谢,这是我第一次来这个论坛。

4

1 回答 1

1

这对我有用(请注意,它假设主机名中每个段的长度为 9 个字符或更少):

#include <stdio.h>
#include <string.h>

int main(int argc, char ** argv)
{
   if (argc < 2)
   {
      printf("Usage:  ./rr www.msn.es\n");
      return 10;
   }

   char outbuf[256] = "\0";
   const char * in = argv[1];
   char * out = outbuf;
   while(*in)
   {
      const char * nextDot = strchr(in, '.');
      if (nextDot == NULL) nextDot = strchr(in, '\0');
      *out++ = (nextDot-in)+'0';
      strncpy(out, in, nextDot-in);
      out += (nextDot-in);
      if (*nextDot == '\0') break;
                       else in = nextDot+1;
   }
   *out++ = '0';
   *out++ = '\0';
   printf("%s\n", outbuf);

   return 0;
}
于 2013-08-01T00:54:34.910 回答