C Library - <string.h> - GeeksforGeeks (2024)

Skip to content

C Library - <string.h> - GeeksforGeeks (1)

Last Updated : 15 Mar, 2023

Summarize

Comments

Improve

Suggest changes

Like Article

Like

Save

Report

string.h is a standard header file in the C language that contains functions for manipulating strings (arrays of characters). <string.h> header file contains some useful string functions that can be directly used in a program by invoking the #include preprocessor directive.

Syntax:

#include <string.h>

Example:

C

// C program to demonstrate the use of C string.h

//header file

#include <stdio.h>

#include <string.h>

int main()

{

// initializing some strings

char str1[20] = "Geeksfor";

char str2[20] = "Geeks";

// using strlen(), strcat()

printf("Str1: %s\n", str1);

printf("Length of Str1 before concatenation: %d\n",

strlen(str1));

strcat(str1, str2); // concatenating str1 and str2

printf("Str1: %s\n", str1);

return 0;

}

Output

Str1: GeeksforLength of Str1 before concatenation: 8Str1: GeeksforGeeks

C string.h Library Functions

<string.h> header file contains the following functions:

Function Name

Function Description

strlen()

Returns the length of the string.

strcpy()

Copy one string to another.

strncpy()

Copy first n characters of one string to another.

strcat()

Concatenates two strings.

strncat()

Concatenates first n characters of one string to another.

strcmp()

Compares two strings.

strncmp()

Compares first n characters of two strings.

strchr()

Find the first occurrence of the given character in the string.

strrchr()

Finds the last occurrence of the given characters in the string.

strstr()

Find the given substring in the string.

strcspn()

Returns the span of the source string not containing any character of the given string.

strspn()

Returns the span of the source string containing only the characters of the given string.

strpbrk()

Finds the first occurrence of any of the characters of the given string in the source string.

strtok()

Split the given string into tokens based on some character as a delimiter.

strcoll()

Compares two strings that are passed.

memset()

Initialize a block of memory with the given character.

memcmp()

Compares two blocks of memory.

memcpy()

Copy two blocks of memory.

memmove()

Moves two blocks of memory.

memchr()

Finds the given character in the block of memory.

Example:

C

// C program to demonstrate the use of different functions

// of string.h library

#include <stdio.h>

#include <string.h>

// defining the common size of the string arrays

#define size 50

int main()

{

char destString[size] = "Geeksfor";

char sourceString[size] = "Geeks";

char tempDestString[size];

printf("Length of Destination String: %d\n",

strlen(destString));

// copying sourceString to tempDestString using strcpy()

strcpy(tempDestString, sourceString);

printf("tempDestString after strcpy(): %s\n",

tempDestString);

// concatenating source to destination using strcat()

strcat(destString, sourceString);

printf("destString after Concatenation: %s\n",

destString);

// comparison using strcmp()

printf("Comparing destString with sourceString: %d\n",

strcmp(destString, sourceString));

printf("Comparing first 5 characters: %d\n",

strncmp(destString, sourceString, 5));

// searching substring using strstr()

printf("Searching sourceString in destString: %s\n",

strstr(destString, sourceString));

return 0;

}

Output

Length of Destination String: 8tempDestString after strcpy(): GeeksdestString after Concatenation: GeeksforGeeksComparing destString with sourceString: 102Comparing first 5 characters: 0Searching sourceString in destString: GeeksforGeeks


Please Login to comment...

Similar Reads

C Library Function - difftime()

The difftime() is a C Library function that returns the difference in time, in seconds(i.e. ending time - starting time). It takes two parameters of type time_t and computes the time difference in seconds. The difftime() function is defined inside the &lt;time.h&gt; header file. Syntax The syntax of difftime() function is as follows: double difftim

1 min read

wcstof function in C library

The wcstof() functions convert the initial portion of the wide-character string pointed to by str to a float point value. The str parameter points to a sequence of characters that can be interpreted as a numeric floating-point value. These functions stop reading the string at the first character that it cannot recognize as part of a number i.e. if

2 min read

wprintf() and wscanf in C Library

If you are dealing with the wide characters then printf() and scanf() function cannot be used. There are different functions for input and output C wide string. wprintf() : The wprintf() function writes the wide string pointed to by format to stdout. The wide string format may contain format specifiers starting with % which are replaced by the valu

3 min read

Difference between Header file and Library

Header Files: The files that tell the compiler how to call some functionality (without knowing how the functionality actually works) are called header files. They contain the function prototypes. They also contain Data types and constants used with the libraries. We use #include to use these header files in programs. These files end with .h extensi

3 min read

ctype.h(&lt;cctype&gt;) library in C/C++ with Examples

As string.h header file contains inbuilt functions to handle Strings in C/C++, the ctype.h/&lt;cctype&gt; contains inbuilt functions to handle characters in C/C++ respectively. Characters are of two types: Printable Characters: The characters that are displayed on the terminal. Control Characters: The characters that are initiated to perform a spec

5 min read

Check if two strings are same or not without using library functions

Given two strings S1 and S2, the task is to check whether they are the same or not without using string library functions. Examples: Input: S1 = ”GeeksForGeeks”, S2 = ”GeeksForGeeks”Output: TrueExplanation:S1 and S2 are the same strings Input: S1 = ”GeeksForGeeks”, S2 = ”GeeksforGeeks”Output: False Approach: Follow the steps below to solve the prob

5 min read

free() Function in C Library With Examples

The free() function in C is used to free or deallocate the dynamically allocated memory and helps in reducing memory wastage. The C free() function cannot be used to free the statically allocated memory (e.g., local variables) or memory allocated on the stack. It can only be used to deallocate the heap memory previously allocated using malloc(), ca

3 min read

C Library Function - putc()

In C, the putc() function is used to write a character passed as an argument to a given stream. It is a standard library function defined in the &lt;stdio.h&gt; header file. The function first converts the character to unsigned char, then writes it to the given stream at the position indicated by the file pointer, and finally increments the file po

4 min read

C Library - exp() Function

In C programming language, the exp() function is a built-in function of &lt;math.h&gt; library which is used to calculate the value of e (Euler's Number = 2.71828) raised to the power x where x is any real number. Syntax: double exp(double x);Arguments: This function takes only one argument of type double.Return Type: This function returns the valu

4 min read

C Library - math.h

The &lt;math.h&gt; header file in C contains the standard math library functions which can be utilized for various mathematical operations. All math.h library functions accept double type as an argument and return double as a result. It also contains some commonly used constants defined as macros. Syntax: #include &lt;math.h&gt;After including the

4 min read

How to print range of basic data types without any library function and constant in C?

How to write C code to print range of basic data types like int, char, short int, unsigned int, unsigned char etc? It is assumed that signed numbers are stored in 2's complement form. We strongly recommend to minimize the browser and try this yourself first. Following are the steps to be followed for unsigned data types. 1) Find number of bytes for

4 min read

How to add "graphics.h" C/C++ library to gcc compiler in Linux

While trying c graphic programming on Ubuntu, I figured out that graphic.h is not a standard C library and it is not supported by gcc compiler. So I am writing this article to explain the process.If you want to use graphics.h on Ubuntu platform you need to compile and install libgraph. It is the implementation of turbo c graphics API on Linux using

2 min read

isgraph() C library function

The C library function isgraph() checks whether a character is a graphic character or not. Characters that have graphical representation are known are graphic characters. For example: ':' ';' '?' '@' etc. Syntax - #include &lt;ctype.h> int isgraph(int ch); Return Value - function returns nonzero if ch is any printable character other than a space,

2 min read

How Do I Create a Library in C?

Libraries are a collection of code that can be used by other programs. They promote code reuse and modularity. In C, we can create our own libraries. In this article, we will learn how to create a library in C. Creating a Library in CIn C, there are multiple methods using which we can create a library.: Static LibraryDynamic LibraryIn this article,

3 min read

How to Create a Static Library in C?

In C, we can create our own libraries that contains the code for the functions or macros that we may need very often. These libraries can be then used in our programs. In this article, we will learn how to create a custom static library and use it with GCC compiler. What is a Static Libraries in C?A static library is a collection of object files th

2 min read

Print all possible combinations of the string by replacing '$' with any other digit from the string

Given a number as a string where some of the digits are replaced by a '$', the task is to generate all possible number by replacing the '$' with any of the digits from the given string.Examples: Input: str = "23$$" Output: 2322 2323 2332 2333Input: str = "$45" Output: 445 545 Approach: Find all the combinations of the string by replacing the charac

15+ min read

Lexicographically smallest string which is not a subsequence of given string

Given a string S, the task is to find the string which is lexicographically smallest and not a subsequence of the given string S. Examples: Input: S = "abcdefghijklmnopqrstuvwxyz"Output: aaExplanation:String "aa" is the lexicographically smallest string which is not present in the given string as a subsequence. Input: S = "aaaa"Output: aaabExplanat

5 min read

How to find length of a string without string.h and loop in C?

Find the length of a string without using any loops and string.h in C. Your program is supposed to behave in following way: Enter a string: GeeksforGeeks (Say user enters GeeksforGeeks) Entered string is: GeeksforGeeks Length is: 13 You may assume that the length of entered string is always less than 100.The following is the solution. C/C++ Code #i

2 min read

Print substring of a given string without using any string function and loop in C

Write a function mysubstr() in C that doesn't use any string function, doesn't use any loop, and prints substring of a string. The function should not modify contents of string and should not use a temporary char array or string. For example mysubstr("geeksforgeeks", 1, 3) should print "eek" i.e., the substring between indexes 1 and 3. One solution

2 min read

What is the best way in C to convert a number to a string?

Solution: Use sprintf() function. #include&lt;stdio.h&gt; int main() { char result[50]; float num = 23.34; sprintf(result, &quot;%f&quot;, num); printf(&quot;\n The string for the num is %s&quot;, result); getchar(); } You can also write your own function using ASCII values of numbers.

1 min read

C | String | Question 2

What is the output of following program? # include &lt;stdio.h&gt; int main() { char str1[] = &quot;GeeksQuiz&quot;; char str2[] = {'G', 'e', 'e', 'k', 's', 'Q', 'u', 'i', 'z'}; int n1 = sizeof(str1)/sizeof(str1[0]); int n2 = sizeof(str2)/sizeof(str2[0]); printf(&quot;n1 = %d, n2 = %d&quot;, n1, n2); return 0; } (A) n1 = 10, n2 = 9 (B) n1 = 10, n2

1 min read

C | String | Question 3

What is the output of following program? #include&lt;stdio.h&gt; void swap(char *str1, char *str2) { char *temp = str1; str1 = str2; str2 = temp; } int main() { char *str1 = &quot;Geeks&quot;; char *str2 = &quot;Quiz&quot;; swap(str1, str2); printf(&quot;str1 is %s, str2 is %s&quot;, str1, str2); return 0; } (A) str1 is Quiz, str2 is Geeks (B) str1

1 min read

C | String | Question 4

Predict the output? #include &lt;stdio.h&gt; int fun(char *str1) { char *str2 = str1; while(*++str1); return (str1-str2); } int main() { char *str = &quot;GeeksQuiz&quot;; printf(&quot;%d&quot;, fun(str)); return 0; } (A) 10 (B) 9 (C) 8 (D) Random Number Answer: (B) Explanation: The function fun() basically counts number of characters in input stri

1 min read

C | String | Question 5

What does the following fragment of C-program print? char c[] = &quot;GATE2011&quot;; char *p =c; printf(&quot;%s&quot;, p + p[3] - p[1]) ; (A) GATE2011 (B) E2011 (C) 2011 (D) 011 Answer: (C) Explanation: See comments for explanation. char c[] = "GATE2011"; // p now has the base address string "GATE2011" char *p = c; // p[3] is 'E' and p[1] is 'A'.

1 min read

C | String | Question 6

C/C++ Code #include int main() { char str[] = \"GeeksQuiz\"; printf(\"%s %s %s \", &str[5], &5[str], str+5); printf(\"%c %c %c \", *(str+6), str[6], 6[str]); return 0; } (A) Runtime Error (B) Compiler Error (C) uiz uiz uiz u u u (D) Quiz Quiz Quiz u u u Answer: (D)Explanation: The program has no error. All of the following expressions mean same thi

1 min read

C | String | Question 7

In below program, what would you put in place of “?” to print “Quiz”? C/C++ Code #include int main() { char arr[] = \"GeeksQuiz\"; printf(\"%s\", ?); return 0; } (A)arr (B)(arr+5) (C)(arr+4) (D)Not possible Answer: (B)Explanation: Since %s is used, the printf statement will print everything starting from arr+5 until it finds ‘\\0’ Quiz of this Ques

1 min read

C | String | Question 8

Output? int main() { char a[2][3][3] = {'g','e','e','k','s','q','u','i','z'}; printf(&quot;%s &quot;, **a); return 0; } (A) Compiler Error (B) geeksquiz followed by garbage characters (C) geeksquiz (D) Runtime Error Answer: (C) Explanation: We have created a 3D array that should have 2*3*3 (= 18) elements, but we are initializing only 9 of them. In

1 min read

C | String | Question 9

Consider the following C program segment: char p[20]; char *s = &quot;string&quot;; int length = strlen(s); int i; for (i = 0; i &lt; length; i++) p[i] = s[length — i]; printf(&quot;%s&quot;, p); The output of the program is? (GATE CS 2004) (A) gnirts (B) gnirt (C) string (D) no output is printed Answer: (D) Explanation: Let us consider below line

1 min read

C | String | Question 11

Predict the output of the following program: #include &lt;stdio.h&gt; int main() { char str[] = &quot;%d %c&quot;, arr[] = &quot;GeeksQuiz&quot;; printf(str, 0[arr], 2[arr + 3]); return 0; } (A) G Q (B) 71 81 (C) 71 Q (D) Compile-time error Answer: (C) Explanation: The statement printf(str, 0[arr], 2[arr + 3]); boils down to: printf("%d %c, 0["Geek

1 min read

C | String | Question 12

Output of following program #include &lt;stdio.h&gt; int fun(char *p) { if (p == NULL || *p == '&#092;&#048;') return 0; int current = 1, i = 1; while (*(p+current)) { if (p[current] != p[current-1]) { p[i] = p[current]; i++; } current++; } *(p+i)='&#092;&#048;'; return i; } int main() { char str[] = &quot;geeksskeeg&quot;; fun(str); puts(str); ret

1 min read

Article Tags :

We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy

C Library - <string.h> - GeeksforGeeks (4)

'); $('.spinner-loading-overlay').show(); jQuery.ajax({ url: writeApiUrl + 'create-improvement-post/?v=1', type: "POST", contentType: 'application/json; charset=utf-8', dataType: 'json', xhrFields: { withCredentials: true }, data: JSON.stringify({ gfg_id: post_id, check: true }), success:function(result) { jQuery.ajax({ url: writeApiUrl + 'suggestions/auth/' + `${post_id}/`, type: "GET", dataType: 'json', xhrFields: { withCredentials: true }, success: function (result) { $('.spinner-loading-overlay:eq(0)').remove(); var commentArray = result; if(commentArray === null || commentArray.length === 0) { // when no reason is availaible then user will redirected directly make the improvment. // call to api create-improvement-post $('body').append('

'); $('.spinner-loading-overlay').show(); jQuery.ajax({ url: writeApiUrl + 'create-improvement-post/?v=1', type: "POST", contentType: 'application/json; charset=utf-8', dataType: 'json', xhrFields: { withCredentials: true }, data: JSON.stringify({ gfg_id: post_id, }), success:function(result) { $('.spinner-loading-overlay:eq(0)').remove(); $('.improve-modal--overlay').hide(); $('.unlocked-status--improve-modal-content').css("display","none"); $('.create-improvement-redirection-to-write').attr('href',writeUrl + 'improve-post/' + `${result.id}` + '/', '_blank'); $('.create-improvement-redirection-to-write')[0].click(); }, error:function(e) { $('.spinner-loading-overlay:eq(0)').remove(); var result = e.responseJSON; if(result.detail.non_field_errors.length){ $('.improve-modal--improve-content .improve-modal--improve-content-modified').text(`${result.detail.non_field_errors}.`); jQuery('.improve-modal--overlay').show(); jQuery('.improve-modal--improvement').show(); $('.locked-status--impove-modal').css("display","block"); $('.unlocked-status--improve-modal-content').css("display","none"); $('.improve-modal--improvement').attr("status","locked"); $('.improvement-reason-modal').hide(); } }, }); return; } var improvement_reason_html = ""; for(var comment of commentArray) { // loop creating improvement reason list markup var comment_id = comment['id']; var comment_text = comment['suggestion']; improvement_reason_html += `

${comment_text}

`; } $('.improvement-reasons_wrapper').html(improvement_reason_html); $('.improvement-bottom-btn').html("Create Improvement"); $('.improve-modal--improvement').hide(); $('.improvement-reason-modal').show(); }, error: function(e){ $('.spinner-loading-overlay:eq(0)').remove(); // stop loader when ajax failed; }, }); }, error:function(e) { $('.spinner-loading-overlay:eq(0)').remove(); var result = e.responseJSON; if(result.detail.non_field_errors.length){ $('.improve-modal--improve-content .improve-modal--improve-content-modified').text(`${result.detail.non_field_errors}.`); jQuery('.improve-modal--overlay').show(); jQuery('.improve-modal--improvement').show(); $('.locked-status--impove-modal').css("display","block"); $('.unlocked-status--improve-modal-content').css("display","none"); $('.improve-modal--improvement').attr("status","locked"); $('.improvement-reason-modal').hide(); } }, }); } else { if(loginData && !loginData.isLoggedIn) { $('.improve-modal--overlay').hide(); if ($('.header-main__wrapper').find('.header-main__signup.login-modal-btn').length) { $('.header-main__wrapper').find('.header-main__signup.login-modal-btn').click(); } return; } } }); $('.left-arrow-icon_wrapper').on('click',function(){ if($('.improve-modal--suggestion').is(":visible")) $('.improve-modal--suggestion').hide(); else{ $('.improvement-reason-modal').hide(); } $('.improve-modal--improvement').show(); }); function loadScript(src, callback) { var script = document.createElement('script'); script.src = src; script.onload = callback; document.head.appendChild(script); } function suggestionCall() { var suggest_val = $.trim($("#suggestion-section-textarea").val()); var array_String= suggest_val.split(" ") var gCaptchaToken = $("#g-recaptcha-response-suggestion-form").val(); var error_msg = false; if(suggest_val != "" && array_String.length >=4){ if(suggest_val.length <= 2000){ var payload = { "gfg_post_id" : `${post_id}`, "suggestion" : `

${suggest_val}

`, } if(!loginData || !loginData.isLoggedIn) // User is not logged in payload["g-recaptcha-token"] = gCaptchaToken jQuery.ajax({ type:'post', url: "https://apiwrite.geeksforgeeks.org/suggestions/auth/create/", xhrFields: { withCredentials: true }, crossDomain: true, contentType:'application/json', data: JSON.stringify(payload), success:function(data) { jQuery('.spinner-loading-overlay:eq(0)').remove(); jQuery('#suggestion-section-textarea').val(""); jQuery('.suggest-bottom-btn').css("display","none"); // Update the modal content const modalSection = document.querySelector('.suggestion-modal-section'); modalSection.innerHTML = `

Thank You!

Your suggestions are valuable to us.

You can now also contribute to the GeeksforGeeks community by creating improvement and help your fellow geeks.

`; }, error:function(data) { jQuery('.spinner-loading-overlay:eq(0)').remove(); jQuery('#suggestion-modal-alert').html("Something went wrong."); jQuery('#suggestion-modal-alert').show(); error_msg = true; } }); } else{ jQuery('.spinner-loading-overlay:eq(0)').remove(); jQuery('#suggestion-modal-alert').html("Minimum 5 Words and Maximum Character limit is 2000."); jQuery('#suggestion-modal-alert').show(); jQuery('#suggestion-section-textarea').focus(); error_msg = true; } } else{ jQuery('.spinner-loading-overlay:eq(0)').remove(); jQuery('#suggestion-modal-alert').html("Enter atleast four words !"); jQuery('#suggestion-modal-alert').show(); jQuery('#suggestion-section-textarea').focus(); error_msg = true; } if(error_msg){ setTimeout(() => { jQuery('#suggestion-section-textarea').focus(); jQuery('#suggestion-modal-alert').hide(); }, 3000); } } document.querySelector('.suggest-bottom-btn').addEventListener('click', function(){ jQuery('body').append('

'); jQuery('.spinner-loading-overlay').show(); if(loginData && loginData.isLoggedIn) { suggestionCall(); return; } // load the captcha script and set the token loadScript('https://www.google.com/recaptcha/api.js?render=6LdMFNUZAAAAAIuRtzg0piOT-qXCbDF-iQiUi9KY',[], function() { setGoogleRecaptcha(); }); }); $('.improvement-bottom-btn.create-improvement-btn').click(function() { //create improvement button is clicked $('body').append('

'); $('.spinner-loading-overlay').show(); // send this option via create-improvement-post api jQuery.ajax({ url: writeApiUrl + 'create-improvement-post/?v=1', type: "POST", contentType: 'application/json; charset=utf-8', dataType: 'json', xhrFields: { withCredentials: true }, data: JSON.stringify({ gfg_id: post_id }), success:function(result) { $('.spinner-loading-overlay:eq(0)').remove(); $('.improve-modal--overlay').hide(); $('.improvement-reason-modal').hide(); $('.create-improvement-redirection-to-write').attr('href',writeUrl + 'improve-post/' + `${result.id}` + '/', '_blank'); $('.create-improvement-redirection-to-write')[0].click(); }, error:function(e) { $('.spinner-loading-overlay:eq(0)').remove(); var result = e.responseJSON; if(result.detail.non_field_errors.length){ $('.improve-modal--improve-content .improve-modal--improve-content-modified').text(`${result.detail.non_field_errors}.`); jQuery('.improve-modal--overlay').show(); jQuery('.improve-modal--improvement').show(); $('.locked-status--impove-modal').css("display","block"); $('.unlocked-status--improve-modal-content').css("display","none"); $('.improve-modal--improvement').attr("status","locked"); $('.improvement-reason-modal').hide(); } }, }); });

C Library - <string.h> - GeeksforGeeks (2024)
Top Articles
Security Guarding Shift Patterns & Coverage Hours - CSA Service Group
tape recorder
What Are the Best Cal State Schools? | BestColleges
Booknet.com Contract Marriage 2
Is Sportsurge Safe and Legal in 2024? Any Alternatives?
Craigslist Kennewick Pasco Richland
Delectable Birthday Dyes
Victoria Secret Comenity Easy Pay
Costco in Hawthorne (14501 Hindry Ave)
Fallout 4 Pipboy Upgrades
Myunlb
Cvs Learnet Modules
Winterset Rants And Raves
UEQ - User Experience Questionnaire: UX Testing schnell und einfach
Summer Rae Boyfriend Love Island – Just Speak News
Byte Delta Dental
Immortal Ink Waxahachie
Ostateillustrated Com Message Boards
Pricelinerewardsvisa Com Activate
Abortion Bans Have Delayed Emergency Medical Care. In Georgia, Experts Say This Mother’s Death Was Preventable.
Swedestats
Saatva Memory Foam Hybrid mattress review 2024
Vrachtwagens in Nederland kopen - gebruikt en nieuw - TrucksNL
Craigslist List Albuquerque: Your Ultimate Guide to Buying, Selling, and Finding Everything - First Republic Craigslist
Aol News Weather Entertainment Local Lifestyle
Red8 Data Entry Job
Gina Wilson Angle Addition Postulate
Apartments / Housing For Rent near Lake Placid, FL - craigslist
fft - Fast Fourier transform
1979 Ford F350 For Sale Craigslist
R Baldurs Gate 3
Lindy Kendra Scott Obituary
Cinema | Düsseldorfer Filmkunstkinos
Pfcu Chestnut Street
Petsmart Distribution Center Jobs
AsROck Q1900B ITX und Ramverträglichkeit
2008 Chevrolet Corvette for sale - Houston, TX - craigslist
Wsbtv Fish And Game Report
Cherry Spa Madison
The Banshees Of Inisherin Showtimes Near Reading Cinemas Town Square
2023 Nickstory
Updates on removal of DePaul encampment | Press Releases | News | Newsroom
Sig Mlok Bayonet Mount
Jimmy John's Near Me Open
A Man Called Otto Showtimes Near Cinemark Greeley Mall
Shannon Sharpe Pointing Gif
Lira Galore Age, Wikipedia, Height, Husband, Boyfriend, Family, Biography, Net Worth
Aaca Not Mine
300 Fort Monroe Industrial Parkway Monroeville Oh
Compete My Workforce
Varsity Competition Results 2022
Latest Posts
Article information

Author: Edmund Hettinger DC

Last Updated:

Views: 5999

Rating: 4.8 / 5 (78 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Edmund Hettinger DC

Birthday: 1994-08-17

Address: 2033 Gerhold Pine, Port Jocelyn, VA 12101-5654

Phone: +8524399971620

Job: Central Manufacturing Supervisor

Hobby: Jogging, Metalworking, Tai chi, Shopping, Puzzles, Rock climbing, Crocheting

Introduction: My name is Edmund Hettinger DC, I am a adventurous, colorful, gifted, determined, precious, open, colorful person who loves writing and wants to share my knowledge and understanding with you.