Guest User

Untitled

a guest
Jan 19th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. size_t my_strlen(const char *s) {
  2. const char* cur = s;
  3. for (; *cur; ++cur);
  4. return cur - s;
  5. }
  6.  
  7. int size_s(char *s)
  8. {
  9. int i;
  10. for (i = 0; s[i] != ''; i++);
  11. return i;
  12. }
  13.  
  14. #include <stdio.h>
  15.  
  16. int main(int argc, char *argv[]){
  17. int i = 1;
  18. for(;i<argc;i++){
  19. char *pStr = argv[i];
  20. int length = 0;
  21. while(*pStr++ != ''){
  22. length++;
  23. }
  24. printf("%dn", length);
  25. }
  26. }
  27.  
  28. gcc main.c
  29.  
  30. ./a.out some_string
  31.  
  32. size_t strlen(const char *s) {
  33. const char *p;
  34. for (p = s; *p; ++p);
  35. return p - s;
  36. }
  37.  
  38. xor eax, eax
  39. mov ecx, -1
  40. mov edi, some_string
  41. mov ebx, edi
  42. cld
  43. push ds
  44. pop es
  45. repne scasb
  46. mov eax, edi
  47. sub eax, ebx
  48. dec eax
  49.  
  50. size_t strlen( const char *s )
  51. {
  52. const char *p = s;
  53.  
  54. for (;;)
  55. {
  56. uint32 c = *((uint32*)p);
  57.  
  58. if ( (c - 0x01010101u) & 0x80808080u )
  59. {
  60. if ((c & 0x000000ffu) == 0) return p-s+0;
  61. if ((c & 0x0000ff00u) == 0) return p-s+1;
  62. if ((c & 0x00ff0000u) == 0) return p-s+2;
  63. if ((c & 0xff000000u) == 0) return p-s+3;
  64. }
  65. p += 4;
  66. }
  67. }
  68.  
  69. #include <iostream>
  70. #include <string>
  71. using namespace std;
  72.  
  73. int number(string chislosimvolov, int i);
  74.  
  75. int main()
  76. {
  77. string chisla;
  78. int i;
  79. cout << "nEnter stroky:";
  80. cin >> chisla;
  81. cout << "Number of symbols in it is: "<< number(chisla, int (chisla.size()));
  82. }
  83.  
  84. int number(string chislosimvolov, int i)
  85. {
  86. int t;
  87. if (i== -1) t = 0;
  88. else
  89. t = number(chislo,i-1)
  90. ;
  91. return t;
  92. }
Add Comment
Please, Sign In to add comment