-3
A
回答
0
嘗試使用此代碼
char *str = "Some string"
char temp[100];
char *ch1, *ch2;
ch1 = strchr(str,'m');
ch2 = strchr(str,'n');
len = ch2-ch1;
strncpy(temp,ch1,len);
0
char destStr[30];
int j=0;
for(i=n;i<=m;i++)
destStr[j++] = str[i];
destStr[j] = '\0';
只要複製使用循環如上所示的所需的字符。如果您選擇不使用現有的字符串系列函數。
1
正如下面的代碼:
int m = 2, n = 6;
char *p = (char *)malloc(sizeof(char) * (n - m));
for (size_t i = m; i < n; i++)
{
p[i - m] = str[i];
}
if(p)
printf("Memory Allocated at: %x/n",p);
else
printf("Not Enough Memory!/n");
free(p);
0
可以使用strscpn
功能。試試這個
int start, end;
start = strcspn(str, "m"); // start = 2
end = strcspn(str, "n"); // end = 9
char *temp = malloc(end-start + 2); // 9 - 2 + 1 (for 'n') + 1(for '\0')
strncpy(temp, &str[start], end-start + 1);
temp[end-start + 1] = '\0';
1
這是一個演示程序,顯示如何寫入函數。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
char * substr(const char *s, size_t pos, size_t n)
{
size_t length = strlen(s);
if (!(pos < length)) return NULL;
if (length - pos < n) n = length - pos;
char *t = malloc((n + 1) * sizeof(char));
if (t)
{
strncpy(t, s + pos, n);
t[n] = '\0';
}
return t;
}
int main(void)
{
char* s = "Some string";
char *t = substr(s, 0, strlen(s));
assert(strlen(s) == strlen(t) && strcmp(t, s) == 0);
puts(t);
free(t);
size_t n = 5, m = 10;
t = substr(s, n, m - n + 1);
assert(strlen(t) == m - n + 1 && strcmp(t, "string") == 0);
puts(t);
free(t);
return 0;
}
程序輸出是
Some string
string
相關問題
- 1. 如何獲得const char的值*
- 2. emu8086 - 如何從ASCII碼獲得CHAR
- 3. 我如何獲得char *矩陣?
- 4. 如何獲得循環中生成的char值的總和?
- 5. 如何獲得std :: numeric_limits <char> :: min()的值?
- 6. 如何獲得的char []與性病::地圖工作回答後
- 7. e.keychar返回ascii值。我如何獲得char/int值?
- 8. 如何獲得解析從libtidy輸出成char *
- 9. 爲什麼這段代碼從'char'錯誤獲得'char *'賦值?
- 10. 如何獲取char&的地址?
- 11. 如何獲得char的十六進制值的二進制表示
- 12. 但是,感謝所有幫助我的人。如何從char獲得值[]
- 13. 如何獲得一個char類型的變量,其值爲'in c#
- 14. 如何獲得
- 15. 如何獲得
- 16. 如何獲得
- 17. 如何獲得
- 18. 如何獲得
- 19. 如何獲得
- 20. 如何獲得
- 21. 如何獲得
- 22. 如何獲得
- 23. 如何獲得
- 24. 如何獲得
- 25. 如何獲得
- 26. 如何獲得
- 27. 如何獲得
- 28. 如何獲得
- 29. 如何獲得
- 30. 如何獲得
函數strncpy這個詞。這個問題也是已經存在的一個確切的副本,標記爲重複。 – zubergu 2015-03-25 08:24:55
...並且字符串的第n個字符在'&str [n]'處,假設您從'n'的零開始計數。 – 2015-03-25 08:29:01
@ChintanPatel它如何重要btw? – niyasc 2015-03-25 08:32:19