Showing posts with label Code. Show all posts
Showing posts with label Code. Show all posts

Friday, October 10, 2008

String Operation Functions Implementation in C++

Oct.11, 2008

// Concatenate source to the end of dest
char* strcat(char* dest, const char* source, int flag)
{
assert( dest!=NULL && source!=NULL );
char* address=dest;

while(*dest) dest++;
while(*dest++ = *source++);

return address;
}

// Copy source to dest
char* strcpy(char *dest, const char *source, int flag)
{
assert( dest!=NULL && source!=NULL );
char* address=dest;

while(*dest++ = *source++);
return address;
}

// Compare str1 to str2
int strcmp(const char *str1, const char *str2, int flag)
{
for( ; *str1==*str2; str1++, str2++)
if(*str1=='\0') return 0;

return *str1 - *str2;
}

// Return the length of str
int strlen(const char *str, int flag)
{
int i=0; while(*str++) i++;
return i;
}

// Convert the string to the lowercase
char* strlwr(char *str, int flag)
{
assert( str!=NULL );
char* address=str;

while( (int)*str>=(int)'A' && (int)*str<=(int)'Z' )
(*str++)+=32;

return address;
}

// Convert the string to the uppercase
char* strupr(char *str, int flag)
{
assert( str!=NULL );
char* address=str;

while( (int)*str>=(int)'a' && (int)*str<=(int)'z' )
(*str++)-=32;

return address;
}


Reference:
The C programming Language.
Best Practice for programmer interview.
Internet.

Tuesday, August 12, 2008

vb.net汉诺塔递归源码

vb.net汉诺塔递归源码
-------------------------------------

Private Function Hanoi(ByVal n As Integer, ByVal x As Char, ByVal y As Char, ByVal z As Char)      
 If n = 1 Then
  '编号为1的盘子从x到z
   MoveDisc(x, 1, z)
 Else
  'n-1个盘子从x经z到y,
  Hanoi(n - 1, x, z, y)
  '编号为n的盘子从x到z
  MoveDisc(x, n, z)
   'n-1个盘子从y经x到z,
  Hanoi(n - 1, y, x, z)
 End If
End Function

Private Function MoveDisc(ByVal x As Char, ByVal n As Integer, ByVal z As Char)
  i = i + 1
 Me.RichTextBox1.AppendText(i & ":Move disc " & n & " from " & x & " to " & z & vbCrLf)
End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 Dim Num As Integer
 Dim x As Char = "x"
 Dim y As Char = "y"
 Dim z As Char = "z"
 Me.RichTextBox1.Clear()
  i = 0
 Try
  Num = CType(TextBox1.Text, Integer)
   Hanoi(Num, x, y, z)
 Catch ex As Exception
  MsgBox("Error,please input a right number!", MsgBoxStyle.Information, "warn")
  End Try
End Sub